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.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");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<MMListingsRequestParam> mmListingsRequestProcessor;
|
||||
private final Processor<CompaniesRequestParam> companiesRequestProcessor;
|
||||
|
||||
private List<String> 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());
|
||||
|
|
|
|||
|
|
@ -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<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() {
|
||||
return id;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue