diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/data/DataValidatorBuilder.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/data/DataValidatorBuilder.java index 02c9f8d00..f829c6746 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/data/DataValidatorBuilder.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/data/DataValidatorBuilder.java @@ -20,6 +20,7 @@ import com.google.gson.JsonArray; public class DataValidatorBuilder { + public static final String VALID_INPUT_SEPERATOR = "_"; private final List dataValidationErrors; private String resource; private String parameter; @@ -593,4 +594,30 @@ public class DataValidatorBuilder { return this; } + + private DataValidatorBuilder validateStringFor(final String validInputs) { + if (this.value == null && this.ignoreNullValue) { return this; } + final String[] inputs = validInputs.split(VALID_INPUT_SEPERATOR); + boolean validationErr = true; + for (final String input : inputs) { + if (input.equalsIgnoreCase(this.value.toString().trim())) { + validationErr = false; + break; + } + } + if (validationErr) { + final StringBuilder validationErrorCode = new StringBuilder("validation.msg.").append(this.resource).append(".") + .append(this.parameter).append(".value.should.true.or.false"); + final StringBuilder defaultEnglishMessage = new StringBuilder("The parameter ").append(this.parameter) + .append(" value should true or false "); + final ApiParameterError error = ApiParameterError.parameterError(validationErrorCode.toString(), + defaultEnglishMessage.toString(), this.parameter, this.value); + this.dataValidationErrors.add(error); + } + return this; + } + + public DataValidatorBuilder validateForBooleanValue() { + return validateStringFor("TRUE" + VALID_INPUT_SEPERATOR + "FALSE"); + } } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanproduct/serialization/LoanProductDataValidator.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanproduct/serialization/LoanProductDataValidator.java index 0107e7a14..7597aa94a 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanproduct/serialization/LoanProductDataValidator.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanproduct/serialization/LoanProductDataValidator.java @@ -83,7 +83,7 @@ public final class LoanProductDataValidator { } final Boolean includeInBorrowerCycle = fromApiJsonHelper.extractBooleanNamed("includeInBorrowerCycle", element); - baseDataValidator.reset().parameter("includeInBorrowerCycle").value(includeInBorrowerCycle).notNull(); + baseDataValidator.reset().parameter("includeInBorrowerCycle").value(includeInBorrowerCycle).ignoreIfNull().validateForBooleanValue(); // terms final String currencyCode = fromApiJsonHelper.extractStringNamed("currencyCode", element); @@ -319,6 +319,11 @@ public final class LoanProductDataValidator { final Long fundId = fromApiJsonHelper.extractLongNamed("fundId", element); baseDataValidator.reset().parameter("fundId").value(fundId).ignoreIfNull().integerGreaterThanZero(); } + + if (fromApiJsonHelper.parameterExists("includeInBorrowerCycle", element)) { + final Boolean includeInBorrowerCycle = fromApiJsonHelper.extractBooleanNamed("includeInBorrowerCycle", element); + baseDataValidator.reset().parameter("includeInBorrowerCycle").value(includeInBorrowerCycle).ignoreIfNull().validateForBooleanValue(); + } if (fromApiJsonHelper.parameterExists("currencyCode", element)) { final String currencyCode = fromApiJsonHelper.extractStringNamed("currencyCode", element);