company-service: RequestHelper to spring bean
This commit is contained in:
parent
28f47e8ebd
commit
3fcf40d94a
5 changed files with 39 additions and 18 deletions
|
|
@ -1,7 +1,10 @@
|
||||||
package ru.spcex.clearing.company.config;
|
package ru.spcex.clearing.company.config;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Scope;
|
||||||
|
import ru.spcex.clearing.company.util.RequestHelper;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
|
|
@ -18,4 +21,11 @@ public class BeanConfiguration {
|
||||||
UserRoleVerification userRoleVerification(ImdgProvider imdg) {
|
UserRoleVerification userRoleVerification(ImdgProvider imdg) {
|
||||||
return new UserRoleVerification(imdg);
|
return new UserRoleVerification(imdg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||||
|
public RequestHelper requestHelper(IMessageResolver messageResolver) {
|
||||||
|
return new RequestHelper(messageResolver);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.UserRole;
|
import ru.spcex.platform.enumeration.UserRole;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
|
||||||
import ru.spcex.platform.utils.error.ValidationException;
|
import ru.spcex.platform.utils.error.ValidationException;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
|
|
@ -43,7 +42,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea
|
||||||
@Autowired
|
@Autowired
|
||||||
public CompanyInfoService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
public CompanyInfoService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
||||||
ImdgProvider imdgProvider, CompanyService companyService,
|
ImdgProvider imdgProvider, CompanyService companyService,
|
||||||
IMessageResolver messageResolver, ValidationHelper validationHelper,
|
RequestHelper requestHelper, ValidationHelper validationHelper,
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
@Qualifier("CompanyInfoUpdateRequestValidator")
|
@Qualifier("CompanyInfoUpdateRequestValidator")
|
||||||
Function<CompanyInfoUpdateRequest, IValidator> companyInfoUpdateRequestValidator) {
|
Function<CompanyInfoUpdateRequest, IValidator> companyInfoUpdateRequestValidator) {
|
||||||
|
|
@ -52,8 +51,8 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea
|
||||||
this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.requestHelper = new RequestHelper(log, messageResolver);
|
|
||||||
this.companyInfoUpdateRequestValidator = companyInfoUpdateRequestValidator;
|
this.companyInfoUpdateRequestValidator = companyInfoUpdateRequestValidator;
|
||||||
|
this.requestHelper = requestHelper.setLogger(log);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.clearing.classes.statics.data.company.CompanyRoleSet;
|
import ru.clearing.classes.statics.data.company.CompanyRoleSet;
|
||||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||||
|
|
@ -26,7 +25,6 @@ import ru.spcex.platform.imdg.api.ImdgId;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.error.ValidationException;
|
import ru.spcex.platform.utils.error.ValidationException;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -49,7 +47,7 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
@Autowired
|
@Autowired
|
||||||
public CompanyRoleSetService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
public CompanyRoleSetService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
IMessageResolver messageResolver,
|
RequestHelper requestHelper,
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
ValidationHelper validationHelper
|
ValidationHelper validationHelper
|
||||||
// @Qualifier("CompanyRoleSetRequestValidator")
|
// @Qualifier("CompanyRoleSetRequestValidator")
|
||||||
|
|
@ -58,12 +56,12 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.messageResolver = messageResolver;
|
this.messageResolver = messageResolver;
|
||||||
this.requestHelper = new RequestHelper(log, messageResolver);
|
|
||||||
this.companyRoleSetMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class);
|
this.companyRoleSetMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class);
|
||||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
// this.companyDeleteRequestValidator = companyDeleteRequestValidator;
|
// this.companyDeleteRequestValidator = companyDeleteRequestValidator;
|
||||||
|
this.requestHelper = requestHelper.setLogger(log);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,9 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.*;
|
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||||
|
import ru.spcex.platform.enumeration.UserRole;
|
||||||
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgId;
|
import ru.spcex.platform.imdg.api.ImdgId;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
@ -58,7 +60,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||||
@Autowired
|
@Autowired
|
||||||
public CompanyService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
public CompanyService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
IMessageResolver messageResolver,
|
RequestHelper requestHelper,
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
@Qualifier("companyNewRequestValidator")
|
@Qualifier("companyNewRequestValidator")
|
||||||
|
|
@ -74,8 +76,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||||
) {
|
) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.messageResolver = messageResolver;
|
this.requestHelper = requestHelper.setLogger(log);
|
||||||
this.requestHelper = new RequestHelper(log, messageResolver);
|
|
||||||
|
|
||||||
this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.platform.messaging.service.Status;
|
import ru.spcex.clearing.platform.messaging.service.Status;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumId;
|
|
||||||
import ru.spcex.platform.utils.enumeration.IErrorEnumId;
|
import ru.spcex.platform.utils.enumeration.IErrorEnumId;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.error.ClearingBaseException;
|
import ru.spcex.platform.utils.error.ClearingBaseException;
|
||||||
|
|
@ -16,7 +15,7 @@ import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Упрощает обработку ошибок во время обработки реквестов.
|
* Упрощает обработку ошибок во время обработки реквестов.
|
||||||
* Передаёт регламинтированные ошибки из ClearingBaseException.
|
* Передаёт регламентированные ошибки из ClearingBaseException.
|
||||||
*
|
*
|
||||||
* Пример:
|
* Пример:
|
||||||
* callback(CompanyNewRequest.class)
|
* callback(CompanyNewRequest.class)
|
||||||
|
|
@ -24,9 +23,14 @@ import java.util.Objects;
|
||||||
* .forDestination(Consts.DESTINATION_COMPANY_NEW, callbacks::put);
|
* .forDestination(Consts.DESTINATION_COMPANY_NEW, callbacks::put);
|
||||||
*/
|
*/
|
||||||
public class RequestHelper {
|
public class RequestHelper {
|
||||||
protected final Logger log;
|
protected Logger log = null;
|
||||||
protected final IMessageResolver messageResolver;
|
protected final IMessageResolver messageResolver;
|
||||||
|
|
||||||
|
public RequestHelper(IMessageResolver messageResolver) {
|
||||||
|
Objects.requireNonNull(messageResolver);
|
||||||
|
this.messageResolver = messageResolver;
|
||||||
|
}
|
||||||
|
|
||||||
public RequestHelper(Logger log, IMessageResolver messageResolver) {
|
public RequestHelper(Logger log, IMessageResolver messageResolver) {
|
||||||
Objects.requireNonNull(log);
|
Objects.requireNonNull(log);
|
||||||
Objects.requireNonNull(messageResolver);
|
Objects.requireNonNull(messageResolver);
|
||||||
|
|
@ -44,12 +48,15 @@ public class RequestHelper {
|
||||||
*/
|
*/
|
||||||
public <X, T extends BaseRequest<X>> RequestInfoUpdate requestFunction(RequestCommand<T> command, T userRequest) {
|
public <X, T extends BaseRequest<X>> RequestInfoUpdate requestFunction(RequestCommand<T> command, T userRequest) {
|
||||||
try {
|
try {
|
||||||
log.debug("{} request received, BaseRequest.id = {}", userRequest.getClass().getSimpleName(), userRequest.getId());
|
if (log != null)
|
||||||
|
log.debug("{} request received, BaseRequest.id = {}", userRequest.getClass().getSimpleName(), userRequest.getId());
|
||||||
RequestInfoUpdate reply = command.command(userRequest);
|
RequestInfoUpdate reply = command.command(userRequest);
|
||||||
log.trace("Reply on request {}: {}" , userRequest.getId(), reply);
|
if (log != null)
|
||||||
|
log.trace("Reply on request {}: {}" , userRequest.getId(), reply);
|
||||||
return reply;
|
return reply;
|
||||||
} catch (ClearingBaseException expectedE) {
|
} catch (ClearingBaseException expectedE) {
|
||||||
log.trace("{} return expected exception: {}", command, expectedE.toString());
|
if (log != null)
|
||||||
|
log.trace("{} return expected exception: {}", command, expectedE.toString());
|
||||||
String message = expectedE.getEnumMsg() == null
|
String message = expectedE.getEnumMsg() == null
|
||||||
? expectedE.getMessage()
|
? expectedE.getMessage()
|
||||||
: messageResolver.resolve(expectedE.getEnumMsg());
|
: messageResolver.resolve(expectedE.getEnumMsg());
|
||||||
|
|
@ -58,7 +65,8 @@ public class RequestHelper {
|
||||||
.setStatus(Status.Error)
|
.setStatus(Status.Error)
|
||||||
.setMessage(message);
|
.setMessage(message);
|
||||||
} catch (Exception unexpectedE) {
|
} catch (Exception unexpectedE) {
|
||||||
log.error("Error at {}: {} ", command, ExceptionUtils.getStackTrace(unexpectedE));
|
if (log != null)
|
||||||
|
log.error("Error at {}: {} ", command, ExceptionUtils.getStackTrace(unexpectedE));
|
||||||
String message = messageResolver.resolve(new EnumMessage(CompanyErrors.GeneralError));
|
String message = messageResolver.resolve(new EnumMessage(CompanyErrors.GeneralError));
|
||||||
return new RequestInfoUpdate()
|
return new RequestInfoUpdate()
|
||||||
.setId(userRequest.getId())
|
.setId(userRequest.getId())
|
||||||
|
|
@ -83,4 +91,9 @@ public class RequestHelper {
|
||||||
public interface RequestCommand<T> {
|
public interface RequestCommand<T> {
|
||||||
RequestInfoUpdate command(T arg) throws ClearingBaseException;
|
RequestInfoUpdate command(T arg) throws ClearingBaseException;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RequestHelper setLogger(Logger log) {
|
||||||
|
this.log = log;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue