FINERACT-2317: Add support for modifying loan approved amounts with validation and history tracking
This commit is contained in:
+9
@@ -3876,4 +3876,13 @@ public class CommandWrapperBuilder {
|
||||
this.href = "/loans/" + loanId + "/transactions/template?command=buyDownFee";
|
||||
return this;
|
||||
}
|
||||
|
||||
public CommandWrapperBuilder updateLoanApprovedAmount(final Long loanId) {
|
||||
this.actionName = "UPDATE";
|
||||
this.entityName = "LOAN_APPROVED_AMOUNT";
|
||||
this.entityId = loanId;
|
||||
this.loanId = loanId;
|
||||
this.href = "/loans/" + loanId;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
+19
-4
@@ -23,6 +23,7 @@ import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
||||
import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
|
||||
import org.apache.fineract.infrastructure.core.exception.GeneralPlatformDomainRuleException;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||
|
||||
public final class Validator {
|
||||
@@ -30,14 +31,28 @@ public final class Validator {
|
||||
private Validator() {}
|
||||
|
||||
public static void validateOrThrow(String resource, Consumer<DataValidatorBuilder> baseDataValidator) {
|
||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||
final DataValidatorBuilder dataValidatorBuilder = new DataValidatorBuilder(dataValidationErrors).resource(resource);
|
||||
|
||||
baseDataValidator.accept(dataValidatorBuilder);
|
||||
final List<ApiParameterError> dataValidationErrors = getApiParameterErrors(resource, baseDataValidator);
|
||||
|
||||
if (!dataValidationErrors.isEmpty()) {
|
||||
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.",
|
||||
dataValidationErrors);
|
||||
}
|
||||
}
|
||||
|
||||
public static void validateOrThrowDomainViolation(String resource, Consumer<DataValidatorBuilder> baseDataValidator) {
|
||||
final List<ApiParameterError> dataValidationErrors = getApiParameterErrors(resource, baseDataValidator);
|
||||
|
||||
if (!dataValidationErrors.isEmpty()) {
|
||||
throw new GeneralPlatformDomainRuleException("validation.msg.validation.errors.exist", "Validation errors exist.",
|
||||
dataValidationErrors.toArray(new Object[0]));
|
||||
}
|
||||
}
|
||||
|
||||
private static List<ApiParameterError> getApiParameterErrors(String resource, Consumer<DataValidatorBuilder> baseDataValidator) {
|
||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||
final DataValidatorBuilder dataValidatorBuilder = new DataValidatorBuilder(dataValidationErrors).resource(resource);
|
||||
|
||||
baseDataValidator.accept(dataValidatorBuilder);
|
||||
return dataValidationErrors;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user