diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/WebConfig.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/WebConfig.java index 32fe3fe31..1b8ea243c 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/WebConfig.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/WebConfig.java @@ -4,6 +4,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.filter.CommonsRequestLoggingFilter; 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; @Configuration @@ -20,4 +22,18 @@ public class WebConfig implements WebMvcConfigurer { 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"); + } + } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/GatewayController.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/GatewayController.java index ca53f00a4..ff0513561 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/GatewayController.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/GatewayController.java @@ -21,9 +21,14 @@ import ru.spcex.clearing.gatewayapi.request.CompaniesRequest; import ru.spcex.clearing.gatewayapi.request.FondListingsRequest; import ru.spcex.clearing.gatewayapi.request.MMListingsRequest; 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.IMessageResolver; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + @Controller @RequestMapping("/") public class GatewayController { @@ -34,6 +39,8 @@ public class GatewayController { private final Processor mmListingsRequestProcessor; private final Processor companiesRequestProcessor; + private List validTypes = Arrays.asList("DAY_START", "ON_DEMAND"); + public GatewayController( IMessageResolver messageResolver, @Qualifier("fondListingsRequestProcessor") @@ -63,6 +70,7 @@ public class GatewayController { ) @ResponseBody public CommonResponse listingsFond(@RequestBody FondListingsRequest request) { + request.validate(validTypes, List.of(Section.FOND)); FondListingsRequestParam requestParam = new FondListingsRequestParam(request); ProcessResult processResult = fondListingsRequestProcessor.process(requestParam); if (processResult.getError() != null) throw new GatewayException(request, processResult.getError()); @@ -83,6 +91,7 @@ public class GatewayController { ) @ResponseBody public CommonResponse listingsMM(@RequestBody MMListingsRequest request) { + request.validate(validTypes, List.of(Section.MKR)); MMListingsRequestParam requestParam = new MMListingsRequestParam(request); ProcessResult processResult = mmListingsRequestProcessor.process(requestParam); if (processResult.getError() != null) throw new GatewayException(request, processResult.getError()); @@ -103,6 +112,7 @@ public class GatewayController { ) @ResponseBody public CommonResponse companies(@RequestBody CompaniesRequest request) { + request.validate(validTypes, Collections.emptyList()); CompaniesRequestParam requestParam = new CompaniesRequestParam(request); ProcessResult processResult = companiesRequestProcessor.process(requestParam); if (processResult.getError() != null) throw new GatewayException(request, processResult.getError()); diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CommonRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CommonRequest.java index ced46fcff..910b39cfd 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CommonRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CommonRequest.java @@ -4,8 +4,13 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.annotations.ApiModelProperty; 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.util.List; import java.util.UUID; public class CommonRequest { @@ -43,6 +48,15 @@ public class CommonRequest { @ApiModelProperty(value = "Секция (FOND или MKR)", example = "FOND") private String section; + public void validate(List typeValidValues, List
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() { return id;