diff --git a/clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/validator/ValidationHelper.java b/clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java similarity index 86% rename from clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/validator/ValidationHelper.java rename to clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java index 948ce73aa..910ce7795 100644 --- a/clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/validator/ValidationHelper.java +++ b/clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java @@ -1,4 +1,4 @@ -package ru.spcex.clearing.validation.common.validator; +package ru.spcex.clearing.validation.common; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,8 +16,8 @@ public class ValidationHelper { private final static Logger log = LoggerFactory.getLogger(ValidationHelper.class); public static RequestInfoUpdate validate(BaseRequest userRequest, - Function validatorBuilder, - IMessageResolver messageResolver) { + Function validatorBuilder, + IMessageResolver messageResolver) { if (validatorBuilder != null) { R req = userRequest.getRequestPayload(); IValidator validator = validatorBuilder.apply(req); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java index f338757e8..c73dc84b8 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java @@ -1,114 +1,114 @@ -//package ru.spcex.clearing.company.config.validation; -// -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -//import ru.clearing.classes.statics.data.company.Company; -//import ru.clearing.classes.statics.data.generated.ClearingMemberCategory; -//import ru.clearing.platform.dictionary.ClearingCategoryDictionary; -//import ru.spcex.clearing.company.error.CompanyErrors; -//import ru.spcex.clearing.imdg.IMDGDistributedNames; -//import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; -//import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryNewRequest; -//import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest; -//import ru.spcex.clearing.validation.common.context.ImdgValidationContext; -//import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; -//import ru.spcex.clearing.validation.common.rules.EnumPresentRule; -//import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; -//import ru.spcex.clearing.validation.common.rules.IdPresentRule; -//import ru.spcex.clearing.validation.common.validator.IValidator; -//import ru.spcex.clearing.validation.common.validator.ValidatorImpl; -//import ru.spcex.platform.classes.base.SpcexObjectBase; -//import ru.spcex.platform.enumeration.ClearingCategory; -//import ru.spcex.platform.enumeration.WorkflowStatus; -//import ru.spcex.platform.imdg.api.Imdg; -// -//import java.util.Map; -//import java.util.function.Consumer; -//import java.util.function.Function; -// -//@Configuration -//public class ClearingMemberCategoryValidationConfig { -// -// @Bean("clearingMemberCategoryNewRequestValidator") -// public Function clearingMemberCategoryNewRequestValidator( -// Map> imdgForValidation -// ) { -// return clearingMemberCategoryNewRequest -> { -// ImdgValidationContext context = new ImdgValidationContext<>(); -// context.setValidatedObject(clearingMemberCategoryNewRequest); -// Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); -// addImdg.accept(IMDGDistributedNames.Map_Company); -// return new ValidatorImpl<>(context, -// IdPresentRule.instance("companyId", -// ClearingMemberCategoryNewRequest::getCompanyId, -// IMDGDistributedNames.Map_Company, -// Company.class, -// CompanyErrors.RequiredFieldEmpty, -// CompanyErrors.CompanyNotFound, -// company -> WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus()) ? null : CompanyErrors.CompanyDisabled), -// FieldRequiredRule.instance("clearingMemberCategory", -// ClearingMemberCategoryNewRequest::getClearingMemberCategory, -// CompanyErrors.RequiredFieldEmpty)); -// }; -// } -// -// @Bean("clearingMemberCategoryUpdateRequestValidator") -// public Function clearingMemberCategoryUpdateRequestValidator( -// Map> imdgForValidation -// ) { -// return clearingMemberCategoryUpdateRequest -> { -// ImdgValidationContext context = new ImdgValidationContext<>(); -// context.setValidatedObject(clearingMemberCategoryUpdateRequest); -// Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); -// addImdg.accept(IMDGDistributedNames.Map_Company); -// addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory); -// return new ValidatorImpl<>(context, -// IdPresentRule.instance("id", -// ClearingMemberCategoryUpdateRequest::getId, -// IMDGDistributedNames.Map_ClearingMemberCategory, -// ClearingMemberCategory.class, -// CompanyErrors.RequiredFieldEmpty, -// CompanyErrors.CategoryNotFound, -// clearingMemberCategory -> { -// Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); -// Company company = companyImdg.getSingleObjectByID(clearingMemberCategory.getCompanyId()); -// if (company == null) return CompanyErrors.CompanyNotFound; -// if (!WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus())) -// return CompanyErrors.CompanyDisabled; -// return null; -// }), -// EnumPresentRule.instance("clearingMemberCategory", -// ClearingMemberCategoryUpdateRequest::getClearingMemberCategory, -// ClearingCategory.values(), -// CompanyErrors.WrongFieldValue, -// CompanyErrors.RequiredFieldEmpty), -// DictionaryPresentRule.instance("clearingMemberCategory", -// ClearingMemberCategoryUpdateRequest::getClearingMemberCategory, -// IMDGDistributedNames.Map_ClearingCategoryDictionary, -// ClearingCategoryDictionary.class, -// CompanyErrors.RequiredFieldEmpty, -// CompanyErrors.WrongFieldValue)); -// }; -// } -// -// @Bean("clearingMemberCategoryDeleteRequestValidator") -// public Function clearingMemberCategoryDeleteRequestValidator( -// Map> imdgForValidation -// ) { -// return clearingMemberCategoryDeleteRequest -> { -// ImdgValidationContext context = new ImdgValidationContext<>(); -// context.setValidatedObject(clearingMemberCategoryDeleteRequest); -// Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); -// addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory); -// return new ValidatorImpl<>(context, -// IdPresentRule.instance("id", -// CommonDeleteRequest::getId, -// IMDGDistributedNames.Map_ClearingMemberCategory, -// ClearingMemberCategory.class, -// CompanyErrors.RequiredFieldEmpty, -// CompanyErrors.CategoryNotFound) -// ); -// }; -// } -// -//} +package ru.spcex.clearing.company.config.validation; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.generated.ClearingMemberCategory; +import ru.clearing.platform.dictionary.ClearingCategoryDictionary; +import ru.spcex.clearing.company.error.CompanyErrors; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest; +import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; +import ru.spcex.clearing.validation.common.rules.EnumPresentRule; +import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; +import ru.spcex.clearing.validation.common.rules.IdPresentRule; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.enumeration.ClearingCategory; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.validation.IValidator; +import ru.spcex.platform.utils.validation.ValidatorImpl; + +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; + +@Configuration +public class ClearingMemberCategoryValidationConfig { + + @Bean("clearingMemberCategoryNewRequestValidator") + public Function clearingMemberCategoryNewRequestValidator( + Map> imdgForValidation + ) { + return clearingMemberCategoryNewRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(clearingMemberCategoryNewRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Company); + return new ValidatorImpl<>(context, + IdPresentRule.instance("companyId", + ClearingMemberCategoryNewRequest::getCompanyId, + IMDGDistributedNames.Map_Company, + Company.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.CompanyNotFound, + company -> WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus()) ? null : CompanyErrors.CompanyDisabled), + FieldRequiredRule.instance("clearingMemberCategory", + ClearingMemberCategoryNewRequest::getClearingMemberCategory, + CompanyErrors.RequiredFieldEmpty)); + }; + } + + @Bean("clearingMemberCategoryUpdateRequestValidator") + public Function clearingMemberCategoryUpdateRequestValidator( + Map> imdgForValidation + ) { + return clearingMemberCategoryUpdateRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(clearingMemberCategoryUpdateRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + ClearingMemberCategoryUpdateRequest::getId, + IMDGDistributedNames.Map_ClearingMemberCategory, + ClearingMemberCategory.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.CategoryNotFound, + clearingMemberCategory -> { + Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); + Company company = companyImdg.getSingleObjectByID(clearingMemberCategory.getCompanyId()); + if (company == null) return CompanyErrors.CompanyNotFound; + if (!WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus())) + return CompanyErrors.CompanyDisabled; + return null; + }), + EnumPresentRule.instance("clearingMemberCategory", + ClearingMemberCategoryUpdateRequest::getClearingMemberCategory, + ClearingCategory.values(), + CompanyErrors.WrongFieldValue, + CompanyErrors.RequiredFieldEmpty), + DictionaryPresentRule.instance("clearingMemberCategory", + ClearingMemberCategoryUpdateRequest::getClearingMemberCategory, + IMDGDistributedNames.Map_ClearingCategoryDictionary, + ClearingCategoryDictionary.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.WrongFieldValue)); + }; + } + + @Bean("clearingMemberCategoryDeleteRequestValidator") + public Function clearingMemberCategoryDeleteRequestValidator( + Map> imdgForValidation + ) { + return clearingMemberCategoryDeleteRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(clearingMemberCategoryDeleteRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + CommonDeleteRequest::getId, + IMDGDistributedNames.Map_ClearingMemberCategory, + ClearingMemberCategory.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.CategoryNotFound) + ); + }; + } + +} diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/CompanyValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java similarity index 93% rename from clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/CompanyValidationConfig.java rename to clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java index 09e6dc2a7..5c80d1569 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/CompanyValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java @@ -1,11 +1,9 @@ -package ru.spcex.clearing.company.config; +package ru.spcex.clearing.company.config.validation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyNewRequest; -//import ru.spcex.clearing.validation.common.FieldRequiredRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.validation.ImdgValidationContext; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java index e39ce71e4..aeb939d09 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java @@ -1,30 +1,30 @@ -//package ru.spcex.clearing.company.config.validation; -// -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -//import ru.clearing.classes.statics.data.company.Company; -//import ru.clearing.classes.statics.data.generated.ClearingMemberCategory; -//import ru.spcex.clearing.imdg.IMDGDistributedNames; -//import ru.spcex.platform.classes.base.SpcexObjectBase; -//import ru.spcex.platform.imdg.api.Imdg; -//import ru.spcex.platform.imdg.api.ImdgProvider; -// -//import java.util.HashMap; -//import java.util.Map; -//import java.util.function.BiConsumer; -// -//@Configuration -//public class ValidationConfig { -// -// @Bean("imdgForValidation") -// public Map> imdgForValidation(ImdgProvider imdgProvider) { -// final Map> imdg = new HashMap<>(); -// BiConsumer> addImdg = (s, aClass) -> imdg.put(s, imdgProvider.getImdg(s, aClass)); -// -// addImdg.accept(IMDGDistributedNames.Map_Company, Company.class); -// addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); -// -// return imdg; -// } -// -//} +package ru.spcex.clearing.company.config.validation; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.generated.ClearingMemberCategory; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiConsumer; + +@Configuration +public class ValidationConfig { + + @Bean("imdgForValidation") + public Map> imdgForValidation(ImdgProvider imdgProvider) { + final Map> imdg = new HashMap<>(); + BiConsumer> addImdg = (s, aClass) -> imdg.put(s, imdgProvider.getImdg(s, aClass)); + + addImdg.accept(IMDGDistributedNames.Map_Company, Company.class); + addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); + + return imdg; + } + +} diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java index 6ca00b196..9692e5aff 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java @@ -6,6 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.generated.ClearingMemberCategory; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -16,9 +17,13 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCat import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.IMessageResolver; +import ru.spcex.platform.utils.validation.IValidator; + +import java.util.function.Function; @Service public class ClearingMemberCategoryService extends QueueConsumer implements InitializingBean { @@ -27,28 +32,24 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init private final IMessageResolver messageResolver; - /* private final Function clearingMemberCategoryNewRequestValidator; private final Function clearingMemberCategoryUpdateRequestValidator; private final Function clearingMemberCategoryDeleteRequestValidator; - */ @Autowired public ClearingMemberCategoryService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, - IMessageResolver messageResolver /*, + IMessageResolver messageResolver, @Qualifier("clearingMemberCategoryNewRequestValidator") Function clearingMemberCategoryNewRequestValidator, @Qualifier("clearingMemberCategoryUpdateRequestValidator") Function clearingMemberCategoryUpdateRequestValidator, - @Qualifier("clearingMemberCategoryDeleteRequestValidator") Function clearingMemberCategoryDeleteRequestValidator */) { + @Qualifier("clearingMemberCategoryDeleteRequestValidator") Function clearingMemberCategoryDeleteRequestValidator) { super(kafkaQueue, kafkaProducer); this.clearingMemberCategoryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); this.messageResolver = messageResolver; - /* this.clearingMemberCategoryNewRequestValidator = clearingMemberCategoryNewRequestValidator; this.clearingMemberCategoryUpdateRequestValidator = clearingMemberCategoryUpdateRequestValidator; this.clearingMemberCategoryDeleteRequestValidator = clearingMemberCategoryDeleteRequestValidator; - */ } @Override @@ -68,8 +69,8 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init private RequestInfoUpdate clearingMemberCategoryNew(BaseRequest userRequest) { ClearingMemberCategoryNewRequest req = userRequest.getRequestPayload(); -// RequestInfoUpdate requestInfoUpdate = ValidationHelper.validate(userRequest, clearingMemberCategoryNewRequestValidator, messageResolver); -// if (requestInfoUpdate != null) return requestInfoUpdate; + RequestInfoUpdate requestInfoUpdate = ValidationHelper.validate(userRequest, clearingMemberCategoryNewRequestValidator, messageResolver); + if (requestInfoUpdate != null) return requestInfoUpdate; log.debug("ClearingMemberCategoryUpdateRequest received {}", userRequest.getId()); ClearingMemberCategory newCategory = new ClearingMemberCategory(); @@ -85,8 +86,8 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init public RequestInfoUpdate clearingMemberCategoryUpdate(BaseRequest userRequest) { ClearingMemberCategoryUpdateRequest req = userRequest.getRequestPayload(); -// RequestInfoUpdate requestInfoUpdate = ValidationHelper.validate(userRequest, clearingMemberCategoryUpdateRequestValidator, messageResolver); -// if (requestInfoUpdate != null) return requestInfoUpdate; + RequestInfoUpdate requestInfoUpdate = ValidationHelper.validate(userRequest, clearingMemberCategoryUpdateRequestValidator, messageResolver); + if (requestInfoUpdate != null) return requestInfoUpdate; log.debug("ClearingMemberCategoryUpdateRequest received"); ClearingMemberCategory clearingMemberCategory = clearingMemberCategoryMap.getSingleObjectByID(req.getId()); @@ -101,8 +102,8 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init private RequestInfoUpdate clearingMemberCategoryDelete(BaseRequest userRequest) { CommonDeleteRequest req = userRequest.getRequestPayload(); -// RequestInfoUpdate requestInfoUpdate = ValidationHelper.validate(userRequest, clearingMemberCategoryDeleteRequestValidator, messageResolver); -// if (requestInfoUpdate != null) return requestInfoUpdate; + RequestInfoUpdate requestInfoUpdate = ValidationHelper.validate(userRequest, clearingMemberCategoryDeleteRequestValidator, messageResolver); + if (requestInfoUpdate != null) return requestInfoUpdate; log.debug("CommonDeleteRequest received id = {}", req.getId()); ClearingMemberCategory clearingMemberCategory = clearingMemberCategoryMap.getSingleObjectByID(req.getId());