securities-service поправил валидаторы (в соответствии с метой)
This commit is contained in:
parent
5e5133b580
commit
602604aa81
3 changed files with 47 additions and 22 deletions
|
|
@ -64,14 +64,15 @@ public class ValidationProvider {
|
||||||
MoneyMarketSecurityNewRequest::getStartDate,
|
MoneyMarketSecurityNewRequest::getStartDate,
|
||||||
MoneyMarketSecurityNewRequest::getEndDate,
|
MoneyMarketSecurityNewRequest::getEndDate,
|
||||||
SecuritiesError.RequiredFieldIsEmpty,
|
SecuritiesError.RequiredFieldIsEmpty,
|
||||||
SecuritiesError.WrongFieldValue),
|
SecuritiesError.WrongFieldValue,
|
||||||
|
false),
|
||||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurityNewRequest.class),
|
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurityNewRequest.class),
|
||||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "RATE"),
|
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "RATE"),
|
||||||
MmsNewValidationRule.RequiredFieldIsNotEmpty,
|
MmsNewValidationRule.RequiredFieldIsNotEmpty,
|
||||||
new HaveValidCompanyId<>(MoneyMarketSecurityNewRequest::getIssuerId, "issuerId"),
|
new HaveValidCompanyId<>(MoneyMarketSecurityNewRequest::getIssuerId, "issuerId"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, MoneyMarketSecurityNewRequest::getInstrumentType, "instrumentType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, MoneyMarketSecurityNewRequest::getInstrumentType, "instrumentType"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, MoneyMarketSecurityNewRequest::getWorkflowStatus, "workflowStatus"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, MoneyMarketSecurityNewRequest::getWorkflowStatus, "workflowStatus", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_TermTypeDictionary, MoneyMarketSecurityNewRequest::getTermType, "termType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_TermTypeDictionary, MoneyMarketSecurityNewRequest::getTermType, "termType", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, MoneyMarketSecurityNewRequest::getNominalCurrency, "nominalCurrency")
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, MoneyMarketSecurityNewRequest::getNominalCurrency, "nominalCurrency")
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
@ -92,15 +93,16 @@ public class ValidationProvider {
|
||||||
MoneyMarketSecurityUpdateRequest::getStartDate,
|
MoneyMarketSecurityUpdateRequest::getStartDate,
|
||||||
MoneyMarketSecurityUpdateRequest::getEndDate,
|
MoneyMarketSecurityUpdateRequest::getEndDate,
|
||||||
SecuritiesError.RequiredFieldIsEmpty,
|
SecuritiesError.RequiredFieldIsEmpty,
|
||||||
SecuritiesError.WrongFieldValue),
|
SecuritiesError.WrongFieldValue,
|
||||||
|
false),
|
||||||
new PresentById(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentNotFound, true),
|
new PresentById(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentNotFound, true),
|
||||||
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "RATE"),
|
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "RATE"),
|
||||||
new WorkflowStatusActv(),
|
new WorkflowStatusActv(),
|
||||||
new HaveValidCompanyId<>(MoneyMarketSecurityUpdateRequest::getIssuerId, "issuerId"),
|
new HaveValidCompanyId<>(MoneyMarketSecurityUpdateRequest::getIssuerId, "issuerId", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, MoneyMarketSecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, MoneyMarketSecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, MoneyMarketSecurityUpdateRequest::getWorkflowStatus, "workflowStatus"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, MoneyMarketSecurityUpdateRequest::getWorkflowStatus, "workflowStatus", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_TermTypeDictionary, MoneyMarketSecurityUpdateRequest::getTermType, "termType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_TermTypeDictionary, MoneyMarketSecurityUpdateRequest::getTermType, "termType", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, MoneyMarketSecurityUpdateRequest::getNominalCurrency, "nominalCurrency")
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, MoneyMarketSecurityUpdateRequest::getNominalCurrency, "nominalCurrency", false)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -133,8 +135,8 @@ public class ValidationProvider {
|
||||||
EquityNewValidationRule.RequiredFieldIsNotEmpty,
|
EquityNewValidationRule.RequiredFieldIsNotEmpty,
|
||||||
new HaveValidCompanyId<>(EquitySecurityNewRequest::getIssuerId, "issuerId"),
|
new HaveValidCompanyId<>(EquitySecurityNewRequest::getIssuerId, "issuerId"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, EquitySecurityNewRequest::getInstrumentType, "instrumentType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, EquitySecurityNewRequest::getInstrumentType, "instrumentType"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, EquitySecurityNewRequest::getWorkflowStatus, "workflowStatus"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, EquitySecurityNewRequest::getWorkflowStatus, "workflowStatus", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_ShareTypeDictionary, EquitySecurityNewRequest::getShareType, "shareType"));
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_ShareTypeDictionary, EquitySecurityNewRequest::getShareType, "shareType", false));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -151,10 +153,10 @@ public class ValidationProvider {
|
||||||
new PresentById(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentNotFound, true),
|
new PresentById(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentNotFound, true),
|
||||||
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "EQTY"),
|
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "EQTY"),
|
||||||
new WorkflowStatusActv(),
|
new WorkflowStatusActv(),
|
||||||
new HaveValidCompanyId<>(EquitySecurityUpdateRequest::getIssuerId, "issuerId"),
|
new HaveValidCompanyId<>(EquitySecurityUpdateRequest::getIssuerId, "issuerId", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, EquitySecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, EquitySecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, EquitySecurityUpdateRequest::getWorkflowStatus, "workflowStatus"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, EquitySecurityUpdateRequest::getWorkflowStatus, "workflowStatus", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_ShareTypeDictionary, EquitySecurityUpdateRequest::getShareType, "shareType"));
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_ShareTypeDictionary, EquitySecurityUpdateRequest::getShareType, "shareType", false));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -185,11 +187,11 @@ public class ValidationProvider {
|
||||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentAlreadyExists, FixedIncomeSecurityNewRequest.class),
|
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentAlreadyExists, FixedIncomeSecurityNewRequest.class),
|
||||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "BOND"),
|
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "BOND"),
|
||||||
FixedIncomeNewValidationRule.RequiredFieldIsNotEmpty,
|
FixedIncomeNewValidationRule.RequiredFieldIsNotEmpty,
|
||||||
new HaveValidCompanyId<>(FixedIncomeSecurityNewRequest::getIssuerId, "issuerId"),
|
new HaveValidCompanyId<>(FixedIncomeSecurityNewRequest::getIssuerId, "issuerId", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, FixedIncomeSecurityNewRequest::getInstrumentType, "instrumentType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, FixedIncomeSecurityNewRequest::getInstrumentType, "instrumentType"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, FixedIncomeSecurityNewRequest::getWorkflowStatus, "workflowStatus"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, FixedIncomeSecurityNewRequest::getWorkflowStatus, "workflowStatus", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_BondTypeDictionary, FixedIncomeSecurityNewRequest::getBondType, "bondType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_BondTypeDictionary, FixedIncomeSecurityNewRequest::getBondType, "bondType", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, FixedIncomeSecurityNewRequest::getNominalCurrency, "nominalCurrency")
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, FixedIncomeSecurityNewRequest::getNominalCurrency, "nominalCurrency", false)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -211,9 +213,9 @@ public class ValidationProvider {
|
||||||
new WorkflowStatusActv(),
|
new WorkflowStatusActv(),
|
||||||
new HaveValidCompanyId<>(FixedIncomeSecurityUpdateRequest::getIssuerId, "issuerId"),
|
new HaveValidCompanyId<>(FixedIncomeSecurityUpdateRequest::getIssuerId, "issuerId"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, FixedIncomeSecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, FixedIncomeSecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, FixedIncomeSecurityUpdateRequest::getWorkflowStatus, "workflowStatus"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, FixedIncomeSecurityUpdateRequest::getWorkflowStatus, "workflowStatus", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_BondTypeDictionary, FixedIncomeSecurityUpdateRequest::getBondType, "bondType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_BondTypeDictionary, FixedIncomeSecurityUpdateRequest::getBondType, "bondType", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, FixedIncomeSecurityUpdateRequest::getNominalCurrency, "nominalCurrency")
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, FixedIncomeSecurityUpdateRequest::getNominalCurrency, "nominalCurrency", false)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,21 +12,33 @@ import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
@Deprecated // use common validator
|
||||||
public class HaveValidCodeByDictionary<R> implements IValidationRule<ImdgValidationContext<R>> {
|
public class HaveValidCodeByDictionary<R> implements IValidationRule<ImdgValidationContext<R>> {
|
||||||
String mapName;
|
String mapName;
|
||||||
String errArg;
|
String errArg;
|
||||||
Function<R, String> codeGetter;
|
Function<R, String> codeGetter;
|
||||||
|
boolean required;
|
||||||
|
public HaveValidCodeByDictionary(String mapName, Function<R, String> codeGetter, String errArg, boolean required) {
|
||||||
|
this.mapName = mapName;
|
||||||
|
this.codeGetter = codeGetter;
|
||||||
|
this.errArg = errArg;
|
||||||
|
this.required = required;
|
||||||
|
}
|
||||||
public HaveValidCodeByDictionary(String mapName, Function<R, String> codeGetter, String errArg) {
|
public HaveValidCodeByDictionary(String mapName, Function<R, String> codeGetter, String errArg) {
|
||||||
this.mapName = mapName;
|
this.mapName = mapName;
|
||||||
this.codeGetter = codeGetter;
|
this.codeGetter = codeGetter;
|
||||||
this.errArg = errArg;
|
this.errArg = errArg;
|
||||||
|
this.required = true;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Optional<EnumMessage> validate(ImdgValidationContext<R> context) {
|
public Optional<EnumMessage> validate(ImdgValidationContext<R> context) {
|
||||||
R validatedObject = context.getValidatedObject();
|
R validatedObject = context.getValidatedObject();
|
||||||
String code = codeGetter.apply(validatedObject);
|
String code = codeGetter.apply(validatedObject);
|
||||||
if(!StringUtils.hasText(code)) {
|
if(!StringUtils.hasText(code)) {
|
||||||
return of(SecuritiesError.RequiredFieldIsEmpty, errArg);
|
if (required)
|
||||||
|
return of(SecuritiesError.RequiredFieldIsEmpty, errArg);
|
||||||
|
else
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
Imdg<SpcexObjectBase> imdgDictionary = context.obtainMap(mapName, SpcexObjectBase.class);
|
Imdg<SpcexObjectBase> imdgDictionary = context.obtainMap(mapName, SpcexObjectBase.class);
|
||||||
SpcexObjectBase dictionary = imdgDictionary.getSingleObjectByFieldValues(Map.of(
|
SpcexObjectBase dictionary = imdgDictionary.getSingleObjectByFieldValues(Map.of(
|
||||||
|
|
|
||||||
|
|
@ -11,19 +11,30 @@ import ru.spcex.platform.utils.validation.IValidationRule;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
@Deprecated // use common validator
|
||||||
public class HaveValidCompanyId<R> implements IValidationRule<ImdgValidationContext<R>> {
|
public class HaveValidCompanyId<R> implements IValidationRule<ImdgValidationContext<R>> {
|
||||||
Function<R, Long> idGetter;
|
Function<R, Long> idGetter;
|
||||||
String errArg;
|
String errArg;
|
||||||
|
boolean required;
|
||||||
|
public HaveValidCompanyId(Function<R, Long> idGetter, String errArg, boolean required) {
|
||||||
|
this.idGetter = idGetter;
|
||||||
|
this.errArg = errArg;
|
||||||
|
this.required=required;
|
||||||
|
}
|
||||||
public HaveValidCompanyId(Function<R, Long> idGetter, String errArg) {
|
public HaveValidCompanyId(Function<R, Long> idGetter, String errArg) {
|
||||||
this.idGetter = idGetter;
|
this.idGetter = idGetter;
|
||||||
this.errArg = errArg;
|
this.errArg = errArg;
|
||||||
|
this.required=true;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Optional<EnumMessage> validate(ImdgValidationContext<R> context) {
|
public Optional<EnumMessage> validate(ImdgValidationContext<R> context) {
|
||||||
R validatedObject = context.getValidatedObject();
|
R validatedObject = context.getValidatedObject();
|
||||||
Long id = idGetter.apply(validatedObject);
|
Long id = idGetter.apply(validatedObject);
|
||||||
if(id == null) {
|
if(id == null) {
|
||||||
return of(SecuritiesError.RequiredFieldIsEmpty, errArg);
|
if (required)
|
||||||
|
return of(SecuritiesError.RequiredFieldIsEmpty, errArg);
|
||||||
|
else
|
||||||
|
return empty();
|
||||||
}
|
}
|
||||||
Imdg<SpcexObjectBase> imdgDictionary = context.obtainMap(IMDGDistributedNames.Map_Company, SpcexObjectBase.class);
|
Imdg<SpcexObjectBase> imdgDictionary = context.obtainMap(IMDGDistributedNames.Map_Company, SpcexObjectBase.class);
|
||||||
SpcexObjectBase dictionary = imdgDictionary.getSingleObjectByID(id);
|
SpcexObjectBase dictionary = imdgDictionary.getSingleObjectByID(id);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue