need fix clearing-utils

This commit is contained in:
akulikov 2023-04-03 11:44:17 +03:00
parent b6f516d81d
commit 5560731a36
5 changed files with 161 additions and 162 deletions

View file

@ -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 <R> RequestInfoUpdate validate(BaseRequest<R> userRequest,
Function<R, IValidator> validatorBuilder,
IMessageResolver messageResolver) {
Function<R, IValidator> validatorBuilder,
IMessageResolver messageResolver) {
if (validatorBuilder != null) {
R req = userRequest.getRequestPayload();
IValidator validator = validatorBuilder.apply(req);

View file

@ -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<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator(
// Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
// ) {
// return clearingMemberCategoryNewRequest -> {
// ImdgValidationContext<ClearingMemberCategoryNewRequest> context = new ImdgValidationContext<>();
// context.setValidatedObject(clearingMemberCategoryNewRequest);
// Consumer<String> 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<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator(
// Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
// ) {
// return clearingMemberCategoryUpdateRequest -> {
// ImdgValidationContext<ClearingMemberCategoryUpdateRequest> context = new ImdgValidationContext<>();
// context.setValidatedObject(clearingMemberCategoryUpdateRequest);
// Consumer<String> 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<Company> 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<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator(
// Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
// ) {
// return clearingMemberCategoryDeleteRequest -> {
// ImdgValidationContext<CommonDeleteRequest> context = new ImdgValidationContext<>();
// context.setValidatedObject(clearingMemberCategoryDeleteRequest);
// Consumer<String> 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<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator(
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
) {
return clearingMemberCategoryNewRequest -> {
ImdgValidationContext<ClearingMemberCategoryNewRequest> context = new ImdgValidationContext<>();
context.setValidatedObject(clearingMemberCategoryNewRequest);
Consumer<String> 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<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator(
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
) {
return clearingMemberCategoryUpdateRequest -> {
ImdgValidationContext<ClearingMemberCategoryUpdateRequest> context = new ImdgValidationContext<>();
context.setValidatedObject(clearingMemberCategoryUpdateRequest);
Consumer<String> 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<Company> 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<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator(
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
) {
return clearingMemberCategoryDeleteRequest -> {
ImdgValidationContext<CommonDeleteRequest> context = new ImdgValidationContext<>();
context.setValidatedObject(clearingMemberCategoryDeleteRequest);
Consumer<String> 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)
);
};
}
}

View file

@ -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;

View file

@ -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<String, Imdg<? extends SpcexObjectBase>> imdgForValidation(ImdgProvider imdgProvider) {
// final Map<String, Imdg<? extends SpcexObjectBase>> imdg = new HashMap<>();
// BiConsumer<String, Class<? extends SpcexObjectBase>> 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<String, Imdg<? extends SpcexObjectBase>> imdgForValidation(ImdgProvider imdgProvider) {
final Map<String, Imdg<? extends SpcexObjectBase>> imdg = new HashMap<>();
BiConsumer<String, Class<? extends SpcexObjectBase>> 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;
}
}

View file

@ -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<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator;
private final Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator;
private final Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator;
*/
@Autowired
public ClearingMemberCategoryService(Consumer<String, Object> kafkaQueue,
Producer<String, Object> kafkaProducer,
ImdgProvider imdgProvider,
IMessageResolver messageResolver /*,
IMessageResolver messageResolver,
@Qualifier("clearingMemberCategoryNewRequestValidator") Function<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator,
@Qualifier("clearingMemberCategoryUpdateRequestValidator") Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator,
@Qualifier("clearingMemberCategoryDeleteRequestValidator") Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator */) {
@Qualifier("clearingMemberCategoryDeleteRequestValidator") Function<CommonDeleteRequest, IValidator> 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<ClearingMemberCategoryNewRequest> 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<ClearingMemberCategoryUpdateRequest> 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<CommonDeleteRequest> 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());