FieldRequiredRule fix
This commit is contained in:
parent
7a3c1ec22c
commit
398307b6b5
2 changed files with 45 additions and 6 deletions
|
|
@ -19,7 +19,7 @@ public record FieldRequiredRule<R, V>(
|
|||
String fieldName,
|
||||
Function<R, V> getter,
|
||||
IErrorEnumId errorEmptyRequiredValue,
|
||||
Function<R, IErrorEnumId>[] additionalChecks
|
||||
Function<V, IErrorEnumId>[] additionalChecks
|
||||
) implements IValidationRule<ImdgValidationContext<R>> {
|
||||
|
||||
/**
|
||||
|
|
@ -33,7 +33,7 @@ public record FieldRequiredRule<R, V>(
|
|||
public static <R, V> FieldRequiredRule<R, V> instance(String fieldName,
|
||||
Function<R, V> getter,
|
||||
IErrorEnumId errorEmptyRequiredValue,
|
||||
Function<R, IErrorEnumId> ... additionalChecks) {
|
||||
Function<V, IErrorEnumId> ... additionalChecks) {
|
||||
if (errorEmptyRequiredValue == null) throw new IllegalArgumentException("Empty errorEmptyRequiredValue");
|
||||
return new FieldRequiredRule<>(fieldName, getter, errorEmptyRequiredValue, additionalChecks);
|
||||
}
|
||||
|
|
@ -43,8 +43,8 @@ public record FieldRequiredRule<R, V>(
|
|||
R validatedObject = context.getValidatedObject();
|
||||
V value = getter.apply(validatedObject);
|
||||
if (value == null) return of(errorEmptyRequiredValue, fieldName);
|
||||
for (Function<R, IErrorEnumId> additionalCheck : additionalChecks) {
|
||||
IErrorEnumId validationError = additionalCheck.apply(validatedObject);
|
||||
for (Function<V, IErrorEnumId> additionalCheck : additionalChecks) {
|
||||
IErrorEnumId validationError = additionalCheck.apply(value);
|
||||
if (validationError != null)
|
||||
return of(validationError, fieldName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@ public class FixedIncomeCashFlowValidationConfig {
|
|||
FieldRequiredRule.instance("securitySymbol",
|
||||
FixedIncomeCashFlowNewRequest::getSecuritySymbol,
|
||||
SecuritiesError.RequiredFieldIsEmpty,
|
||||
request -> {
|
||||
securitySymbol -> {
|
||||
Imdg<FixedIncomeCashFlow> fixedIncomeCashFlowImdg = context.obtainMap(
|
||||
IMDGDistributedNames.Map_FixedIncomeCashFlow, FixedIncomeCashFlow.class
|
||||
);
|
||||
Long securityId = Long.valueOf(request.getSecuritySymbol());
|
||||
Long securityId = Long.valueOf(securitySymbol);
|
||||
Collection<FixedIncomeCashFlow> fixedIncomeCashFlows = fixedIncomeCashFlowImdg.getCollectionObjectsByFieldValues(Map.of("securityId", securityId));
|
||||
if (!fixedIncomeCashFlows.isEmpty()) return SecuritiesError.CouponPeriodAlreadyExists;
|
||||
return null;
|
||||
|
|
@ -61,4 +61,43 @@ public class FixedIncomeCashFlowValidationConfig {
|
|||
};
|
||||
}
|
||||
|
||||
// @Bean("fixedIncomeCashFlowUpdateRequestValidator")
|
||||
// public Function<FixedIncomeCashFlowUpdateRequest, IValidator> fixedIncomeCashFlowUpdateRequestValidator(
|
||||
// Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
||||
// ) {
|
||||
// return fixedIncomeCashFlowUpdateRequest -> {
|
||||
// ImdgValidationContext<FixedIncomeCashFlowUpdateRequest> context = new ImdgValidationContext<>();
|
||||
// context.setValidatedObject(fixedIncomeCashFlowUpdateRequest);
|
||||
// Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||
// addImdg.accept(IMDGDistributedNames.Map_FixedIncomeCashFlow);
|
||||
// return new ValidatorImpl<>(context,
|
||||
// IsLongValueRule.instance("securitySymbol",
|
||||
// FixedIncomeCashFlowNewRequest::getSecuritySymbol,
|
||||
// SecuritiesError.RequiredFieldIsEmpty,
|
||||
// SecuritiesError.WrongFieldValue),
|
||||
// FieldRequiredRule.instance("securitySymbol",
|
||||
// FixedIncomeCashFlowNewRequest::getSecuritySymbol,
|
||||
// SecuritiesError.RequiredFieldIsEmpty,
|
||||
// request -> {
|
||||
// Imdg<FixedIncomeCashFlow> fixedIncomeCashFlowImdg = context.obtainMap(
|
||||
// IMDGDistributedNames.Map_FixedIncomeCashFlow, FixedIncomeCashFlow.class
|
||||
// );
|
||||
// Long securityId = Long.valueOf(request.getSecuritySymbol());
|
||||
// Collection<FixedIncomeCashFlow> fixedIncomeCashFlows = fixedIncomeCashFlowImdg.getCollectionObjectsByFieldValues(Map.of("securityId", securityId));
|
||||
// if (!fixedIncomeCashFlows.isEmpty()) return SecuritiesError.CouponPeriodAlreadyExists;
|
||||
// return null;
|
||||
// }),
|
||||
// FieldRequiredRule.instance("accruedCoupon",
|
||||
// FixedIncomeCashFlowNewRequest::getAccruedCoupon,
|
||||
// SecuritiesError.RequiredFieldIsEmpty),
|
||||
// FieldRequiredRule.instance("nominalValue",
|
||||
// FixedIncomeCashFlowNewRequest::getNominalValue,
|
||||
// SecuritiesError.RequiredFieldIsEmpty),
|
||||
// FieldRequiredRule.instance("number",
|
||||
// FixedIncomeCashFlowNewRequest::getNumber,
|
||||
// SecuritiesError.RequiredFieldIsEmpty)
|
||||
// );
|
||||
// };
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue