From a5bd6dd1cf31bb75c232e1e521272f15ea57fa8f Mon Sep 17 00:00:00 2001 From: akulikov Date: Sun, 28 May 2023 19:28:06 +0300 Subject: [PATCH] . --- .../config/ProcessorConfiguration.java | 2 +- .../controller/GatewayController.java | 45 ++++++++++++------- .../gatewayapi/errors/GatewayError.java | 1 + .../exception/GatewayException.java | 26 ++++++++++- .../gatewayapi/logic/ProcessResult.java | 9 ++++ .../clearing/gatewayapi/logic/Processor.java | 18 ++++++-- ...ties.java => PrepareIncomeSecurities.java} | 7 ++- .../listings_fond/PrepareIssuerCompanies.java | 2 - .../ValidateIncomeSecurities.java | 5 ++- .../PrepareExchangeInstruments.java | 5 ++- .../{BaseRequest.java => CommonRequest.java} | 2 +- .../gatewayapi/request/CompaniesRequest.java | 17 +++---- .../request/FondListingsRequest.java | 21 ++++----- .../gatewayapi/request/MMListingsRequest.java | 13 +++--- .../gatewayapi/response/CommonResponse.java | 22 ++++++--- 15 files changed, 135 insertions(+), 60 deletions(-) rename clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/{PrepareSecurities.java => PrepareIncomeSecurities.java} (92%) rename clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/{BaseRequest.java => CommonRequest.java} (98%) diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/ProcessorConfiguration.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/ProcessorConfiguration.java index 98dfb4f85..006799c35 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/ProcessorConfiguration.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/ProcessorConfiguration.java @@ -22,7 +22,7 @@ public class ProcessorConfiguration { public Processor fondListingsRequestProcessor(ImdgProvider imdgProvider, KafkaSender kafkaSender) { Processor processor = new Processor<>(); List> pipeline = new ArrayList<>(); - pipeline.add(new PrepareSecurities()); + pipeline.add(new PrepareIncomeSecurities()); pipeline.add(new PrepareIssuerCompanies()); pipeline.add(new ValidateIncomeSecurities()); pipeline.add(new ValidateIssuerCompanies()); 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 40e88e30f..ca53f00a4 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 @@ -6,33 +6,36 @@ import io.swagger.annotations.ApiResponses; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import ru.spcex.clearing.gatewayapi.exception.GatewayException; import ru.spcex.clearing.gatewayapi.logic.ProcessResult; import ru.spcex.clearing.gatewayapi.logic.Processor; import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam; import ru.spcex.clearing.gatewayapi.logic.listings_fond.FondListingsRequestParam; import ru.spcex.clearing.gatewayapi.logic.listings_mm.MMListingsRequestParam; -import ru.spcex.clearing.gatewayapi.request.BaseRequest; +import ru.spcex.clearing.gatewayapi.request.CommonRequest; 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.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.enumeration.IMessageResolver; @Controller @RequestMapping("/") public class GatewayController { private final Logger log = LoggerFactory.getLogger(getClass()); + private final IMessageResolver messageResolver; private final Processor fondListingsRequestProcessor; private final Processor mmListingsRequestProcessor; private final Processor companiesRequestProcessor; public GatewayController( + IMessageResolver messageResolver, @Qualifier("fondListingsRequestProcessor") Processor fondListingsRequestProcessor, @Qualifier("mmListingsRequestProcessor") @@ -40,13 +43,13 @@ public class GatewayController { @Qualifier("companiesRequestProcessor") Processor companiesRequestProcessor ) { + this.messageResolver = messageResolver; this.fondListingsRequestProcessor = fondListingsRequestProcessor; this.mmListingsRequestProcessor = mmListingsRequestProcessor; this.companiesRequestProcessor = companiesRequestProcessor; } - @ApiOperation(value = "Экспорт ценных бумаг в Клиринговую систему") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = CommonResponse.class), @@ -60,14 +63,13 @@ public class GatewayController { ) @ResponseBody public CommonResponse listingsFond(@RequestBody FondListingsRequest request) { - CommonResponse commonResponse = createResponse(request); FondListingsRequestParam requestParam = new FondListingsRequestParam(request); ProcessResult processResult = fondListingsRequestProcessor.process(requestParam); - return commonResponse; + if (processResult.getError() != null) throw new GatewayException(request, processResult.getError()); + return createResponse(request, true); } - @ApiOperation(value = "Экспорт спецификаций биржевых инструментов в Клиринговую систему") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = CommonResponse.class), @@ -81,14 +83,13 @@ public class GatewayController { ) @ResponseBody public CommonResponse listingsMM(@RequestBody MMListingsRequest request) { - CommonResponse commonResponse = createResponse(request); MMListingsRequestParam requestParam = new MMListingsRequestParam(request); ProcessResult processResult = mmListingsRequestProcessor.process(requestParam); - return commonResponse; + if (processResult.getError() != null) throw new GatewayException(request, processResult.getError()); + return createResponse(request, true); } - @ApiOperation(value = "Экспорт участников в клиринговую систему") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = CommonResponse.class), @@ -102,22 +103,32 @@ public class GatewayController { ) @ResponseBody public CommonResponse companies(@RequestBody CompaniesRequest request) { - CommonResponse commonResponse = createResponse(request); CompaniesRequestParam requestParam = new CompaniesRequestParam(request); ProcessResult processResult = companiesRequestProcessor.process(requestParam); - return commonResponse; + if (processResult.getError() != null) throw new GatewayException(request, processResult.getError()); + return createResponse(request, true); } - public CommonResponse errorResponse() { - return null; + @ResponseStatus(value = HttpStatus.BAD_REQUEST) + @ResponseBody + @ExceptionHandler(GatewayException.class) + public CommonResponse errorResponse(GatewayException exception) { + CommonResponse errorResponse = createResponse(exception.getIncomeRequest(), false); + errorResponse.setCode(exception.getError().getId()); + errorResponse.setMessage(messageResolver.resolve(new EnumMessage(exception.getError(), exception.getErrorArgs()))); + return errorResponse; } - private CommonResponse createResponse(BaseRequest request) { + private CommonResponse createResponse(CommonRequest request, boolean success) { CommonResponse commonResponse = new CommonResponse(); commonResponse.setId(request.getId()); commonResponse.setType(request.getType()); commonResponse.setDatetime(request.getDatetime()); commonResponse.setSection(request.getSection()); + if (success) { + commonResponse.setCode(0L); + commonResponse.setMessage("success"); + } return commonResponse; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/errors/GatewayError.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/errors/GatewayError.java index 5f48ca709..9b6eea2b2 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/errors/GatewayError.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/errors/GatewayError.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.gatewayapi.errors; import ru.spcex.platform.utils.enumeration.IErrorEnumId; public enum GatewayError implements IErrorEnumId { + InternalError(6000L), UserVerifyDenial(6443L), CompanyNotFound(6001L), SecurityNotFound(6002L), diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/exception/GatewayException.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/exception/GatewayException.java index fa4697c00..902d1dc17 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/exception/GatewayException.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/exception/GatewayException.java @@ -1,5 +1,29 @@ package ru.spcex.clearing.gatewayapi.exception; -public class GatewayException extends RuntimeException { +import ru.spcex.clearing.gatewayapi.errors.GatewayError; +import ru.spcex.clearing.gatewayapi.request.CommonRequest; + +public class GatewayException extends RuntimeException { + private final CommonRequest incomeRequest; + private final Object[] errorArgs; + private final GatewayError error; + + public GatewayException(CommonRequest incomeRequest, GatewayError error, Object ... args) { + this.error = error; + this.incomeRequest = incomeRequest; + this.errorArgs = args; + } + + public CommonRequest getIncomeRequest() { + return incomeRequest; + } + + public GatewayError getError() { + return error; + } + + public Object[] getErrorArgs() { + return errorArgs; + } } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/ProcessResult.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/ProcessResult.java index e81eba739..a4609aa8c 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/ProcessResult.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/ProcessResult.java @@ -4,6 +4,15 @@ import ru.spcex.clearing.gatewayapi.errors.GatewayError; public class ProcessResult { private GatewayError error = null; + private Object[] errorArgs; + + public ProcessResult() { + + } + + public ProcessResult(GatewayError error, Object ... errorArgs) { + this.error = error; + } public GatewayError getError() { return error; diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/Processor.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/Processor.java index 9618db44f..e8a060247 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/Processor.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/Processor.java @@ -1,16 +1,26 @@ package ru.spcex.clearing.gatewayapi.logic; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import ru.spcex.clearing.gatewayapi.errors.GatewayError; + import java.util.List; public class Processor { + private final Logger log = LoggerFactory.getLogger(getClass()); private List> pipeline; public ProcessResult process(T param) { - for (Stage stage : pipeline) { - ProcessResult processResult = stage.process(param); - if (processResult != null) return processResult; + try { + for (Stage stage : pipeline) { + ProcessResult processResult = stage.process(param); + if (processResult != null) return processResult; + } + } catch (RuntimeException e) { + log.error("", e); + return new ProcessResult(GatewayError.InternalError); } - return null; + return new ProcessResult(); } public List> getPipeline() { diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareSecurities.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIncomeSecurities.java similarity index 92% rename from clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareSecurities.java rename to clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIncomeSecurities.java index ef360f4a2..1959d86ab 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareSecurities.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIncomeSecurities.java @@ -2,6 +2,7 @@ package ru.spcex.clearing.gatewayapi.logic.listings_fond; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ru.spcex.clearing.gatewayapi.errors.GatewayError; import ru.spcex.clearing.gatewayapi.logic.ProcessResult; import ru.spcex.clearing.gatewayapi.logic.Stage; import ru.spcex.clearing.gatewayapi.request.objects.*; @@ -12,7 +13,7 @@ import java.util.Map; import java.util.UUID; import java.util.stream.Collectors; -public class PrepareSecurities extends Stage { +public class PrepareIncomeSecurities extends Stage { private final Logger log = LoggerFactory.getLogger(getClass()); @Override @@ -72,7 +73,9 @@ public class PrepareSecurities extends Stage { .filter(incomeSecurity -> !incomeSecurity.isInvalidData()) .collect(Collectors.toList()); - // todo check list is empty + if (filteredIncomeSecurities.isEmpty()) { + return new ProcessResult(GatewayError.SecurityNotFound); + } param.setSecurities(filteredIncomeSecurities); diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIssuerCompanies.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIssuerCompanies.java index 86773a6f6..e8278601b 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIssuerCompanies.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIssuerCompanies.java @@ -93,8 +93,6 @@ public class PrepareIssuerCompanies extends Stage { .filter(issuerCompany -> !issuerCompany.isInvalidData()) .collect(Collectors.toList()); - // todo check list is empty - param.setIssuerCompanyList(filteredIssuerCompany); return null; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/ValidateIncomeSecurities.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/ValidateIncomeSecurities.java index b72f015d1..293bdf408 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/ValidateIncomeSecurities.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/ValidateIncomeSecurities.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.gatewayapi.logic.listings_fond; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ru.spcex.clearing.gatewayapi.errors.GatewayError; import ru.spcex.clearing.gatewayapi.logic.ProcessResult; import ru.spcex.clearing.gatewayapi.logic.Stage; import ru.spcex.clearing.gatewayapi.request.objects.CouponSchedule; @@ -160,7 +161,9 @@ public class ValidateIncomeSecurities extends Stage { .filter(incomeSecurity -> !incomeSecurity.isInvalidData()) .collect(Collectors.toList()); - // todo check list is empty + if (filteredIncomeSecurities.isEmpty()) { + return new ProcessResult(GatewayError.SecurityNotFound); + } param.setSecurities(filteredIncomeSecurities); diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_mm/PrepareExchangeInstruments.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_mm/PrepareExchangeInstruments.java index 034a42b86..62276caf9 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_mm/PrepareExchangeInstruments.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_mm/PrepareExchangeInstruments.java @@ -2,6 +2,7 @@ package ru.spcex.clearing.gatewayapi.logic.listings_mm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ru.spcex.clearing.gatewayapi.errors.GatewayError; import ru.spcex.clearing.gatewayapi.logic.ProcessResult; import ru.spcex.clearing.gatewayapi.logic.Stage; import ru.spcex.clearing.gatewayapi.request.objects.DirAuctionBiddingType; @@ -97,7 +98,9 @@ public class PrepareExchangeInstruments extends Stage { .filter(exchangeInstrument -> !exchangeInstrument.isInvalidData()) .collect(Collectors.toList()); - // todo check list is empty + if (filteredExchangeInstrument.isEmpty()) { + return new ProcessResult(GatewayError.SecurityNotFound); + } param.setExchangeInstrumentsList(filteredExchangeInstrument); return null; diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/BaseRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CommonRequest.java similarity index 98% rename from clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/BaseRequest.java rename to clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CommonRequest.java index ad469e976..ced46fcff 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/BaseRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CommonRequest.java @@ -8,7 +8,7 @@ import ru.spcex.clearing.gatewayapi.config.deserializers.InstantDeserializer; import java.time.Instant; import java.util.UUID; -public class BaseRequest { +public class CommonRequest { @JsonProperty("id") @ApiModelProperty( diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CompaniesRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CompaniesRequest.java index 77f52dce0..d2587cce3 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CompaniesRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/CompaniesRequest.java @@ -4,36 +4,37 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; import ru.spcex.clearing.gatewayapi.request.objects.*; +import java.util.ArrayList; import java.util.List; -public class CompaniesRequest extends BaseRequest { +public class CompaniesRequest extends CommonRequest { @JsonProperty("company") @ApiModelProperty(value = "Список компаний") - private List companyList; + private List companyList = new ArrayList<>(); @JsonProperty("company_info") @ApiModelProperty(value = "Список профилей участников") - private List companyInfoList; + private List companyInfoList = new ArrayList<>(); @JsonProperty("company_clearing_category") @ApiModelProperty(value = "Список категорий участников клиринга") - private List companyClearingCategoryList; + private List companyClearingCategoryList = new ArrayList<>(); @JsonProperty("company_symbols") @ApiModelProperty(value = "Список реквизитов участников") - private List memberCompanySymbolsList; + private List memberCompanySymbolsList = new ArrayList<>(); @JsonProperty("contact") @ApiModelProperty(value = "Список контактов участников") - private List contactList; + private List contactList = new ArrayList<>(); @JsonProperty("profile_document") @ApiModelProperty(value = "Список документов участников") - private List memberProfileDocumentList; + private List memberProfileDocumentList = new ArrayList<>(); @JsonProperty("client") @ApiModelProperty(value = "Список клиентов участников") - private List memberClientList; + private List memberClientList = new ArrayList<>(); public List getCompanyList() { diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/FondListingsRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/FondListingsRequest.java index 9dcbcd031..941b599b9 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/FondListingsRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/FondListingsRequest.java @@ -4,44 +4,45 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; import ru.spcex.clearing.gatewayapi.request.objects.*; +import java.util.ArrayList; import java.util.List; -public class FondListingsRequest extends BaseRequest { +public class FondListingsRequest extends CommonRequest { @JsonProperty("security") @ApiModelProperty(value = "Список инструментов") - private List securities; + private List securities = new ArrayList<>(); @JsonProperty("coupon_schedule") @ApiModelProperty(value = "Список coupon_schedule") - private List couponSchedules; + private List couponSchedules = new ArrayList<>(); @JsonProperty("currency") @ApiModelProperty(value = "Список валют") - private List currencies; + private List currencies = new ArrayList<>(); @JsonProperty("listing") @ApiModelProperty(value = "Список режимов торгов") - private List listingList; + private List listingList = new ArrayList<>(); @JsonProperty("nominal") @ApiModelProperty(value = "Список nominal") - private List nominalList; + private List nominalList = new ArrayList<>(); @JsonProperty("company") @ApiModelProperty(value = "Список компаний эмитентов") - private List issuerCompanyList; + private List issuerCompanyList = new ArrayList<>(); @JsonProperty("company_info") @ApiModelProperty(value = "Список профилей компаний эмитентов") - private List issuerCompanyInfoList; + private List issuerCompanyInfoList = new ArrayList<>(); @JsonProperty("company_symbols") @ApiModelProperty(value = "Список реквизитов компаний эмитентов") - private List issuerCompanySymbolsList; + private List issuerCompanySymbolsList = new ArrayList<>(); @JsonProperty("contact") @ApiModelProperty(value = "Список контактов компаний эмитентов") - private List issuerContactList; + private List issuerContactList = new ArrayList<>(); public List getSecurities() { return securities; diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/MMListingsRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/MMListingsRequest.java index 5b5b53f99..77cae20b5 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/MMListingsRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/MMListingsRequest.java @@ -4,28 +4,29 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; import ru.spcex.clearing.gatewayapi.request.objects.*; +import java.util.ArrayList; import java.util.List; -public class MMListingsRequest extends BaseRequest { +public class MMListingsRequest extends CommonRequest { @JsonProperty("exchange_instrument") @ApiModelProperty(value = "Список инструментов") - private List exchangeInstrumentList; + private List exchangeInstrumentList = new ArrayList<>(); @JsonProperty("dir_auction_bidding_type") @ApiModelProperty(value = "Справочник «Тип аукциона или торгов»") - private List dirAuctionBiddingTypeList; + private List dirAuctionBiddingTypeList = new ArrayList<>(); @JsonProperty("dir_currency_code") @ApiModelProperty(value = "Справочник «Коды валют»") - private List dirCurrencyCodeList; + private List dirCurrencyCodeList = new ArrayList<>(); @JsonProperty("trading_mode") @ApiModelProperty(value = "Список режимов торгов Спецификации биржевого инструмента") - private List tradingModeList; + private List tradingModeList = new ArrayList<>(); @JsonProperty("dir_trading_mode_mkr") @ApiModelProperty(value = "Справочник «Режимы торгов МКР»") - private List dirTradingModeMkrList; + private List dirTradingModeMkrList = new ArrayList<>(); public List getExchangeInstrumentList() { return exchangeInstrumentList; diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/response/CommonResponse.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/response/CommonResponse.java index 59a1d8bcf..8ecf85791 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/response/CommonResponse.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/response/CommonResponse.java @@ -11,10 +11,6 @@ import java.util.UUID; @ApiModel(description = "Базовый формат ответа") public class CommonResponse { - @JsonProperty("code") - @ApiModelProperty(value = "Код ответа", example = "200") - private Integer code; - @JsonProperty("id") @ApiModelProperty( value = "Значение соответствует полученному из запроса", @@ -43,6 +39,12 @@ public class CommonResponse { ) private String section; + @JsonProperty("code") + private Long code; + + @JsonProperty("message") + private String message; + public UUID getId() { return id; } @@ -75,11 +77,19 @@ public class CommonResponse { this.section = section; } - public Integer getCode() { + public Long getCode() { return code; } - public void setCode(Integer code) { + public void setCode(Long code) { this.code = code; } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } }