http://jira.mfd.msk:8088/browse/CLS-301 swagger and validate common request
This commit is contained in:
parent
587da25d0c
commit
24e9b4f548
3 changed files with 40 additions and 0 deletions
|
|
@ -4,6 +4,8 @@ import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.web.filter.CommonsRequestLoggingFilter;
|
import org.springframework.web.filter.CommonsRequestLoggingFilter;
|
||||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
||||||
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
|
|
@ -20,4 +22,18 @@ public class WebConfig implements WebMvcConfigurer {
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||||
|
registry.addResourceHandler("swagger-ui.html")
|
||||||
|
.addResourceLocations("classpath:/META-INF/resources/");
|
||||||
|
|
||||||
|
registry.addResourceHandler("/webjars/**")
|
||||||
|
.addResourceLocations("classpath:/META-INF/resources/webjars/");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addViewControllers(ViewControllerRegistry registry) {
|
||||||
|
registry.addRedirectViewController("", "/swagger-ui.html");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,14 @@ import ru.spcex.clearing.gatewayapi.request.CompaniesRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.request.FondListingsRequest;
|
import ru.spcex.clearing.gatewayapi.request.FondListingsRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.request.MMListingsRequest;
|
import ru.spcex.clearing.gatewayapi.request.MMListingsRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.response.CommonResponse;
|
import ru.spcex.clearing.gatewayapi.response.CommonResponse;
|
||||||
|
import ru.spcex.platform.enumeration.Section;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/")
|
@RequestMapping("/")
|
||||||
public class GatewayController {
|
public class GatewayController {
|
||||||
|
|
@ -34,6 +39,8 @@ public class GatewayController {
|
||||||
private final Processor<MMListingsRequestParam> mmListingsRequestProcessor;
|
private final Processor<MMListingsRequestParam> mmListingsRequestProcessor;
|
||||||
private final Processor<CompaniesRequestParam> companiesRequestProcessor;
|
private final Processor<CompaniesRequestParam> companiesRequestProcessor;
|
||||||
|
|
||||||
|
private List<String> validTypes = Arrays.asList("DAY_START", "ON_DEMAND");
|
||||||
|
|
||||||
public GatewayController(
|
public GatewayController(
|
||||||
IMessageResolver messageResolver,
|
IMessageResolver messageResolver,
|
||||||
@Qualifier("fondListingsRequestProcessor")
|
@Qualifier("fondListingsRequestProcessor")
|
||||||
|
|
@ -63,6 +70,7 @@ public class GatewayController {
|
||||||
)
|
)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public CommonResponse listingsFond(@RequestBody FondListingsRequest request) {
|
public CommonResponse listingsFond(@RequestBody FondListingsRequest request) {
|
||||||
|
request.validate(validTypes, List.of(Section.FOND));
|
||||||
FondListingsRequestParam requestParam = new FondListingsRequestParam(request);
|
FondListingsRequestParam requestParam = new FondListingsRequestParam(request);
|
||||||
ProcessResult processResult = fondListingsRequestProcessor.process(requestParam);
|
ProcessResult processResult = fondListingsRequestProcessor.process(requestParam);
|
||||||
if (processResult.getError() != null) throw new GatewayException(request, processResult.getError());
|
if (processResult.getError() != null) throw new GatewayException(request, processResult.getError());
|
||||||
|
|
@ -83,6 +91,7 @@ public class GatewayController {
|
||||||
)
|
)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public CommonResponse listingsMM(@RequestBody MMListingsRequest request) {
|
public CommonResponse listingsMM(@RequestBody MMListingsRequest request) {
|
||||||
|
request.validate(validTypes, List.of(Section.MKR));
|
||||||
MMListingsRequestParam requestParam = new MMListingsRequestParam(request);
|
MMListingsRequestParam requestParam = new MMListingsRequestParam(request);
|
||||||
ProcessResult processResult = mmListingsRequestProcessor.process(requestParam);
|
ProcessResult processResult = mmListingsRequestProcessor.process(requestParam);
|
||||||
if (processResult.getError() != null) throw new GatewayException(request, processResult.getError());
|
if (processResult.getError() != null) throw new GatewayException(request, processResult.getError());
|
||||||
|
|
@ -103,6 +112,7 @@ public class GatewayController {
|
||||||
)
|
)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public CommonResponse companies(@RequestBody CompaniesRequest request) {
|
public CommonResponse companies(@RequestBody CompaniesRequest request) {
|
||||||
|
request.validate(validTypes, Collections.emptyList());
|
||||||
CompaniesRequestParam requestParam = new CompaniesRequestParam(request);
|
CompaniesRequestParam requestParam = new CompaniesRequestParam(request);
|
||||||
ProcessResult processResult = companiesRequestProcessor.process(requestParam);
|
ProcessResult processResult = companiesRequestProcessor.process(requestParam);
|
||||||
if (processResult.getError() != null) throw new GatewayException(request, processResult.getError());
|
if (processResult.getError() != null) throw new GatewayException(request, processResult.getError());
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,13 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import ru.spcex.clearing.gatewayapi.config.deserializers.InstantDeserializer;
|
import ru.spcex.clearing.gatewayapi.config.deserializers.InstantDeserializer;
|
||||||
|
import ru.spcex.clearing.gatewayapi.errors.GatewayError;
|
||||||
|
import ru.spcex.clearing.gatewayapi.exception.GatewayException;
|
||||||
|
import ru.spcex.platform.enumeration.Section;
|
||||||
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class CommonRequest {
|
public class CommonRequest {
|
||||||
|
|
@ -43,6 +48,15 @@ public class CommonRequest {
|
||||||
@ApiModelProperty(value = "Секция (FOND или MKR)", example = "FOND")
|
@ApiModelProperty(value = "Секция (FOND или MKR)", example = "FOND")
|
||||||
private String section;
|
private String section;
|
||||||
|
|
||||||
|
public void validate(List<String> typeValidValues, List<Section> sectionValidValues) {
|
||||||
|
if (!typeValidValues.isEmpty() && !typeValidValues.contains(type.toUpperCase())) {
|
||||||
|
throw new GatewayException(this, GatewayError.WrongFieldValue, "type");
|
||||||
|
}
|
||||||
|
Section sectionEnum = IEnumKey.getEnumByKey(Section.class, section);
|
||||||
|
if (!sectionValidValues.isEmpty() && !sectionValidValues.contains(sectionEnum)) {
|
||||||
|
throw new GatewayException(this, GatewayError.WrongFieldValue, "section");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public UUID getId() {
|
public UUID getId() {
|
||||||
return id;
|
return id;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue