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,
|
String fieldName,
|
||||||
Function<R, V> getter,
|
Function<R, V> getter,
|
||||||
IErrorEnumId errorEmptyRequiredValue,
|
IErrorEnumId errorEmptyRequiredValue,
|
||||||
Function<R, IErrorEnumId>[] additionalChecks
|
Function<V, IErrorEnumId>[] additionalChecks
|
||||||
) implements IValidationRule<ImdgValidationContext<R>> {
|
) implements IValidationRule<ImdgValidationContext<R>> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -33,7 +33,7 @@ public record FieldRequiredRule<R, V>(
|
||||||
public static <R, V> FieldRequiredRule<R, V> instance(String fieldName,
|
public static <R, V> FieldRequiredRule<R, V> instance(String fieldName,
|
||||||
Function<R, V> getter,
|
Function<R, V> getter,
|
||||||
IErrorEnumId errorEmptyRequiredValue,
|
IErrorEnumId errorEmptyRequiredValue,
|
||||||
Function<R, IErrorEnumId> ... additionalChecks) {
|
Function<V, IErrorEnumId> ... additionalChecks) {
|
||||||
if (errorEmptyRequiredValue == null) throw new IllegalArgumentException("Empty errorEmptyRequiredValue");
|
if (errorEmptyRequiredValue == null) throw new IllegalArgumentException("Empty errorEmptyRequiredValue");
|
||||||
return new FieldRequiredRule<>(fieldName, getter, errorEmptyRequiredValue, additionalChecks);
|
return new FieldRequiredRule<>(fieldName, getter, errorEmptyRequiredValue, additionalChecks);
|
||||||
}
|
}
|
||||||
|
|
@ -43,8 +43,8 @@ public record FieldRequiredRule<R, V>(
|
||||||
R validatedObject = context.getValidatedObject();
|
R validatedObject = context.getValidatedObject();
|
||||||
V value = getter.apply(validatedObject);
|
V value = getter.apply(validatedObject);
|
||||||
if (value == null) return of(errorEmptyRequiredValue, fieldName);
|
if (value == null) return of(errorEmptyRequiredValue, fieldName);
|
||||||
for (Function<R, IErrorEnumId> additionalCheck : additionalChecks) {
|
for (Function<V, IErrorEnumId> additionalCheck : additionalChecks) {
|
||||||
IErrorEnumId validationError = additionalCheck.apply(validatedObject);
|
IErrorEnumId validationError = additionalCheck.apply(value);
|
||||||
if (validationError != null)
|
if (validationError != null)
|
||||||
return of(validationError, fieldName);
|
return of(validationError, fieldName);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,11 +39,11 @@ public class FixedIncomeCashFlowValidationConfig {
|
||||||
FieldRequiredRule.instance("securitySymbol",
|
FieldRequiredRule.instance("securitySymbol",
|
||||||
FixedIncomeCashFlowNewRequest::getSecuritySymbol,
|
FixedIncomeCashFlowNewRequest::getSecuritySymbol,
|
||||||
SecuritiesError.RequiredFieldIsEmpty,
|
SecuritiesError.RequiredFieldIsEmpty,
|
||||||
request -> {
|
securitySymbol -> {
|
||||||
Imdg<FixedIncomeCashFlow> fixedIncomeCashFlowImdg = context.obtainMap(
|
Imdg<FixedIncomeCashFlow> fixedIncomeCashFlowImdg = context.obtainMap(
|
||||||
IMDGDistributedNames.Map_FixedIncomeCashFlow, FixedIncomeCashFlow.class
|
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));
|
Collection<FixedIncomeCashFlow> fixedIncomeCashFlows = fixedIncomeCashFlowImdg.getCollectionObjectsByFieldValues(Map.of("securityId", securityId));
|
||||||
if (!fixedIncomeCashFlows.isEmpty()) return SecuritiesError.CouponPeriodAlreadyExists;
|
if (!fixedIncomeCashFlows.isEmpty()) return SecuritiesError.CouponPeriodAlreadyExists;
|
||||||
return null;
|
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