refactoring gateway

This commit is contained in:
etreschenkov 2023-06-14 18:46:14 +03:00
parent a8dd8d78ef
commit acbd5c4b05
51 changed files with 204 additions and 154 deletions

View file

@ -5,9 +5,13 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.spcex.clearing.gatewayapi.logic.Processor;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.logic.companies.*;
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesKafkaMessenger;
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
import ru.spcex.clearing.gatewayapi.logic.companies.PrepareMemberCompanies;
import ru.spcex.clearing.gatewayapi.logic.listings_fond.*;
import ru.spcex.clearing.gatewayapi.logic.listings_mm.*;
import ru.spcex.clearing.gatewayapi.logic.listings_mm.MMListingsRequestParam;
import ru.spcex.clearing.gatewayapi.logic.listings_mm.PrepareExchangeInstruments;
import ru.spcex.clearing.gatewayapi.logic.listings_mm.SendMessageToSecurityServiceWithMMSecurities;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.platform.imdg.api.ImdgProvider;
@ -24,10 +28,6 @@ public class ProcessorConfiguration {
List<Stage<FondListingsRequestParam>> pipeline = new ArrayList<>();
pipeline.add(new PrepareIncomeSecurities());
pipeline.add(new PrepareIssuerCompanies());
pipeline.add(new ValidateIncomeSecurities());
pipeline.add(new ValidateIssuerCompanies());
pipeline.add(new CheckFondSecurityExist(imdgProvider));
pipeline.add(new CheckIssuerCompanyExist(imdgProvider));
pipeline.add(new SendMessageToCompanyServiceWithIssuerCompanies(kafkaSender, imdgProvider));
pipeline.add(new SendMessageToSecurityServiceWithFondSecurities(kafkaSender, imdgProvider));
processor.setPipeline(pipeline);
@ -40,8 +40,6 @@ public class ProcessorConfiguration {
Processor<MMListingsRequestParam> processor = new Processor<>();
List<Stage<MMListingsRequestParam>> pipeline = new ArrayList<>();
pipeline.add(new PrepareExchangeInstruments());
pipeline.add(new ValidateExchangeInstruments(imdgProvider));
pipeline.add(new CheckMoneyMarketSecurityExist(imdgProvider));
pipeline.add(new SendMessageToSecurityServiceWithMMSecurities(kafkaSender));
processor.setPipeline(pipeline);
return processor;
@ -53,8 +51,6 @@ public class ProcessorConfiguration {
Processor<CompaniesRequestParam> processor = new Processor<>();
List<Stage<CompaniesRequestParam>> pipeline = new ArrayList<>();
pipeline.add(new PrepareMemberCompanies());
pipeline.add(new ValidateMemberCompanies());
pipeline.add(new CheckMemberCompanyExist(imdgProvider));
pipeline.add(new CompaniesKafkaMessenger(kafkaSender, imdgProvider));
processor.setPipeline(pipeline);
return processor;

View file

@ -0,0 +1,23 @@
package ru.spcex.clearing.gatewayapi.config.deserializers;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import ru.spcex.platform.utils.time.TimeUtil;
import java.io.IOException;
import java.time.Instant;
import java.time.format.DateTimeFormatter;
public class InstantWithWillisDeserializer extends JsonDeserializer<Instant> {
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss:SSS");
@Override
public Instant deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String date = p.getText();
if (date == null || date.trim().length() == 0) {
return null;
}
return TimeUtil.parseInstantDateAndTime(date, formatter);
}
}

View file

@ -17,9 +17,9 @@ 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.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.request.company.CompaniesRequest;
import ru.spcex.clearing.gatewayapi.request.listing.fond.FondListingsRequest;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.MMListingsRequest;
import ru.spcex.clearing.gatewayapi.response.CommonResponse;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IMessageResolver;

View file

@ -1,28 +0,0 @@
package ru.spcex.clearing.gatewayapi.controller;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/")
public class TestController {
private final Logger log = LoggerFactory.getLogger(getClass());
@ApiOperation(value = "Test gateway-api availability.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = String.class)})
@RequestMapping(method = RequestMethod.GET, path = "/ping", produces = MediaType.TEXT_PLAIN_VALUE)
@ResponseBody
public String processGet() {
log.info("Call test method for gateway-api controller");
return "gateway-api controller test method";
}
}

View file

@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.company.Company;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.*;
import ru.spcex.clearing.gatewayapi.request.company.*;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
@ -45,6 +45,10 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
companyNewRequest.setFullName(company.getFullName());
companyNewRequest.setCompanySymbol(CompanySymbol.UUID.getKey());
companyNewRequest.setCompanySymbolValue(company.getId().toString());
companyNewRequest.setTradingCode(company.getTradingCode());
companyNewRequest.setClearingCode(company.getClearingCode());
companyNewRequest.setRegistrationCode(company.getRegistrationCode());
companyNewRequest.setInitiatorCode(company.getInitiatorCode());
multiCompanyRequest.setCompany(companyNewRequest);
MemberCompanyInfo companyInfo = company.getCompanyInfo();

View file

@ -1,7 +1,7 @@
package ru.spcex.clearing.gatewayapi.logic.companies;
import ru.spcex.clearing.gatewayapi.request.CompaniesRequest;
import ru.spcex.clearing.gatewayapi.request.objects.MemberCompany;
import ru.spcex.clearing.gatewayapi.request.company.CompaniesRequest;
import ru.spcex.clearing.gatewayapi.request.company.MemberCompany;
import java.util.ArrayList;
import java.util.List;

View file

@ -4,8 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.CompaniesRequest;
import ru.spcex.clearing.gatewayapi.request.objects.*;
import ru.spcex.clearing.gatewayapi.request.company.*;
import java.util.HashMap;
import java.util.List;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.logic.listings_fond;
package ru.spcex.clearing.gatewayapi.logic.legacy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -9,10 +9,11 @@ import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
import ru.clearing.classes.statics.data.misc.Listing;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.CouponSchedule;
import ru.spcex.clearing.gatewayapi.request.objects.FondSecurity;
import ru.spcex.clearing.gatewayapi.request.objects.IncomeListing;
import ru.spcex.clearing.gatewayapi.request.objects.Nominal;
import ru.spcex.clearing.gatewayapi.logic.listings_fond.FondListingsRequestParam;
import ru.spcex.clearing.gatewayapi.request.listing.fond.CouponSchedule;
import ru.spcex.clearing.gatewayapi.request.listing.fond.FondSecurity;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IncomeListing;
import ru.spcex.clearing.gatewayapi.request.listing.fond.Nominal;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.InstrumentType;
import ru.spcex.platform.imdg.api.Imdg;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.logic.listings_fond;
package ru.spcex.clearing.gatewayapi.logic.legacy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -7,9 +7,10 @@ import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.profile.Contact;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerCompany;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerCompanySymbols;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerContact;
import ru.spcex.clearing.gatewayapi.logic.listings_fond.FondListingsRequestParam;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerCompany;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerCompanySymbols;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerContact;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.CompanySymbol;
import ru.spcex.platform.imdg.api.Imdg;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.logic.companies;
package ru.spcex.clearing.gatewayapi.logic.legacy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -9,7 +9,8 @@ import ru.clearing.classes.statics.data.profile.Contact;
import ru.clearing.classes.statics.data.profile.ProfileDocument;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.*;
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
import ru.spcex.clearing.gatewayapi.request.company.*;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.CompanySymbol;
import ru.spcex.platform.imdg.api.Imdg;

View file

@ -1,11 +1,12 @@
package ru.spcex.clearing.gatewayapi.logic.listings_mm;
package ru.spcex.clearing.gatewayapi.logic.legacy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.ExchangeInstrument;
import ru.spcex.clearing.gatewayapi.logic.listings_mm.MMListingsRequestParam;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.ExchangeInstrument;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.InstrumentType;
import ru.spcex.platform.imdg.api.Imdg;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.logic.listings_mm;
package ru.spcex.clearing.gatewayapi.logic.legacy;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -7,7 +7,8 @@ import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.ExchangeInstrument;
import ru.spcex.clearing.gatewayapi.logic.listings_mm.MMListingsRequestParam;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.ExchangeInstrument;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.CompanySymbol;
import ru.spcex.platform.enumeration.TermType;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.logic.listings_fond;
package ru.spcex.clearing.gatewayapi.logic.legacy;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -6,10 +6,11 @@ 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;
import ru.spcex.clearing.gatewayapi.request.objects.FondSecurity;
import ru.spcex.clearing.gatewayapi.request.objects.IncomeListing;
import ru.spcex.clearing.gatewayapi.request.objects.Nominal;
import ru.spcex.clearing.gatewayapi.logic.listings_fond.FondListingsRequestParam;
import ru.spcex.clearing.gatewayapi.request.listing.fond.CouponSchedule;
import ru.spcex.clearing.gatewayapi.request.listing.fond.FondSecurity;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IncomeListing;
import ru.spcex.clearing.gatewayapi.request.listing.fond.Nominal;
import ru.spcex.platform.enumeration.BondType;
import ru.spcex.platform.enumeration.InstrumentType;
import ru.spcex.platform.enumeration.ShareType;

View file

@ -1,13 +1,14 @@
package ru.spcex.clearing.gatewayapi.logic.listings_fond;
package ru.spcex.clearing.gatewayapi.logic.legacy;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerCompany;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerCompanySymbols;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerContact;
import ru.spcex.clearing.gatewayapi.logic.listings_fond.FondListingsRequestParam;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerCompany;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerCompanySymbols;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerContact;
import ru.spcex.platform.enumeration.CompanySymbol;
import ru.spcex.platform.enumeration.ContactTypes;
import ru.spcex.platform.enumeration.WorkflowStatus;

View file

@ -1,11 +1,12 @@
package ru.spcex.clearing.gatewayapi.logic.companies;
package ru.spcex.clearing.gatewayapi.logic.legacy;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.*;
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
import ru.spcex.clearing.gatewayapi.request.company.*;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.utils.enumeration.IEnumKey;

View file

@ -1,8 +1,8 @@
package ru.spcex.clearing.gatewayapi.logic.listings_fond;
import ru.spcex.clearing.gatewayapi.request.FondListingsRequest;
import ru.spcex.clearing.gatewayapi.request.objects.FondSecurity;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerCompany;
import ru.spcex.clearing.gatewayapi.request.listing.fond.FondListingsRequest;
import ru.spcex.clearing.gatewayapi.request.listing.fond.FondSecurity;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerCompany;
import java.util.ArrayList;
import java.util.List;

View file

@ -5,7 +5,7 @@ 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.*;
import ru.spcex.clearing.gatewayapi.request.listing.fond.*;
import java.util.HashMap;
import java.util.List;

View file

@ -4,7 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.*;
import ru.spcex.clearing.gatewayapi.request.listing.fond.*;
import java.util.HashMap;
import java.util.List;

View file

@ -5,10 +5,10 @@ import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.company.Company;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerCompany;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerCompanyInfo;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerCompanySymbols;
import ru.spcex.clearing.gatewayapi.request.objects.IssuerContact;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerCompany;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerCompanyInfo;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerCompanySymbols;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IssuerContact;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.company.*;

View file

@ -8,10 +8,10 @@ import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.CouponSchedule;
import ru.spcex.clearing.gatewayapi.request.objects.FondSecurity;
import ru.spcex.clearing.gatewayapi.request.objects.IncomeListing;
import ru.spcex.clearing.gatewayapi.request.objects.Nominal;
import ru.spcex.clearing.gatewayapi.request.listing.fond.CouponSchedule;
import ru.spcex.clearing.gatewayapi.request.listing.fond.FondSecurity;
import ru.spcex.clearing.gatewayapi.request.listing.fond.IncomeListing;
import ru.spcex.clearing.gatewayapi.request.listing.fond.Nominal;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;

View file

@ -1,7 +1,7 @@
package ru.spcex.clearing.gatewayapi.logic.listings_mm;
import ru.spcex.clearing.gatewayapi.request.MMListingsRequest;
import ru.spcex.clearing.gatewayapi.request.objects.ExchangeInstrument;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.ExchangeInstrument;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.MMListingsRequest;
import java.util.List;

View file

@ -5,10 +5,10 @@ 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;
import ru.spcex.clearing.gatewayapi.request.objects.DirTradingModeMkr;
import ru.spcex.clearing.gatewayapi.request.objects.ExchangeInstrument;
import ru.spcex.clearing.gatewayapi.request.objects.TradingMode;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.DirAuctionBiddingType;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.DirTradingModeMkr;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.ExchangeInstrument;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.TradingMode;
import java.util.HashMap;
import java.util.List;

View file

@ -2,7 +2,7 @@ package ru.spcex.clearing.gatewayapi.logic.listings_mm;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.objects.ExchangeInstrument;
import ru.spcex.clearing.gatewayapi.request.listing.mkr.ExchangeInstrument;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityUpdateRequest;

View file

@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.config.deserializers.InstantDeserializer;
import ru.spcex.clearing.gatewayapi.config.serializers.InstantSerializer;
import ru.spcex.clearing.gatewayapi.config.deserializers.InstantWithWillisDeserializer;
import ru.spcex.clearing.gatewayapi.config.serializers.InstantWithMillisSerializer;
import ru.spcex.clearing.gatewayapi.errors.GatewayError;
import ru.spcex.clearing.gatewayapi.exception.GatewayException;
import ru.spcex.platform.enumeration.Section;
@ -39,8 +39,8 @@ public class CommonRequest {
private String type;
@JsonProperty("datetime")
@JsonDeserialize(using = InstantDeserializer.class)
@JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantWithWillisDeserializer.class)
@JsonSerialize(using = InstantWithMillisSerializer.class)
@ApiModelProperty(
value = "Передавать дату и время формирования JSON объекта в формате «ДД.ММ.ГГГГ ЧЧ:ММ:СС:ссс».",
example = "01.01.2023 12:34:56:789"

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;

View file

@ -1,8 +1,8 @@
package ru.spcex.clearing.gatewayapi.request;
package ru.spcex.clearing.gatewayapi.request.company;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.objects.*;
import ru.spcex.clearing.gatewayapi.request.CommonRequest;
import java.util.ArrayList;
import java.util.List;

View file

@ -1,8 +1,9 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.company;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.util.UUID;

View file

@ -1,8 +1,9 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.company;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.util.ArrayList;
import java.util.List;

View file

@ -1,7 +1,8 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.company;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.util.UUID;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.company;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;

View file

@ -1,7 +1,8 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.company;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.util.UUID;

View file

@ -1,7 +1,8 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.company;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.util.UUID;

View file

@ -1,9 +1,10 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.company;
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.LocalDateDeserializer;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.time.LocalDate;
import java.util.UUID;

View file

@ -1,9 +1,10 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
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.LocalDateDeserializer;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.math.BigDecimal;
import java.time.LocalDate;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;

View file

@ -1,8 +1,8 @@
package ru.spcex.clearing.gatewayapi.request;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.objects.*;
import ru.spcex.clearing.gatewayapi.request.CommonRequest;
import java.util.ArrayList;
import java.util.List;

View file

@ -1,10 +1,11 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
import com.fasterxml.jackson.annotation.JsonIgnore;
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.LocalDateDeserializer;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.math.BigDecimal;
import java.time.LocalDate;

View file

@ -1,9 +1,10 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
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.LocalDateDeserializer;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.math.BigDecimal;
import java.time.LocalDate;

View file

@ -1,9 +1,10 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.util.ArrayList;
import java.util.List;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;

View file

@ -1,8 +1,9 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.util.UUID;

View file

@ -1,8 +1,9 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.util.UUID;

View file

@ -1,10 +1,11 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.fond;
import com.fasterxml.jackson.annotation.JsonIgnore;
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.LocalDateDeserializer;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.math.BigDecimal;
import java.time.LocalDate;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.mkr;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.mkr;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.mkr;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;

View file

@ -1,10 +1,11 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.mkr;
import com.fasterxml.jackson.annotation.JsonIgnore;
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.LocalDateDeserializer;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.math.BigDecimal;
import java.time.LocalDate;

View file

@ -1,8 +1,8 @@
package ru.spcex.clearing.gatewayapi.request;
package ru.spcex.clearing.gatewayapi.request.listing.mkr;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.objects.*;
import ru.spcex.clearing.gatewayapi.request.CommonRequest;
import java.util.ArrayList;
import java.util.List;

View file

@ -1,8 +1,9 @@
package ru.spcex.clearing.gatewayapi.request.objects;
package ru.spcex.clearing.gatewayapi.request.listing.mkr;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.request.WithMapId;
import java.util.UUID;

View file

@ -2,8 +2,6 @@ package ru.spcex.clearing.gatewayapi.logic.listings_fond;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
import org.springframework.beans.factory.InitializingBean;
@ -17,12 +15,9 @@ import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
import ru.spcex.clearing.gatewayapi.config.ProcessorConfiguration;
import ru.spcex.clearing.gatewayapi.config.TestConfiguration;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
import ru.spcex.clearing.gatewayapi.logic.Processor;
import ru.spcex.clearing.gatewayapi.logic.Stage;
import ru.spcex.clearing.gatewayapi.request.FondListingsRequest;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityNewRequest;
@ -35,8 +30,6 @@ import ru.spcex.platform.enumeration.WorkflowStatus;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -66,29 +59,29 @@ class ListingFondRequestTest implements InitializingBean {
Imdg<FixedIncomeSecurity> fixedIncomeSecurityImdg;
Imdg<EquitySecurity> equitySecurityImdg;
@Test
public void test() throws IOException {
File requestFile = new File(getClass().getClassLoader().getResource("requests/testFondSecuritiesRequest_1.json").getFile());
FondListingsRequest fondListingsRequest = objectMapper.readValue(requestFile, FondListingsRequest.class);
FondListingsRequestParam param = new FondListingsRequestParam(fondListingsRequest);
ProcessResult result = processor.process(param);
// Проверяем только количество запросов, поскольку выполнение этих запросов зависит от security и company модулей
// todo upd: поскольку будет производиться переход к полностью асинхронному запросам, этот тест возможно стоит тоже поправить
Assertions.assertNull(result.getError());
Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_NEW).size(), 1);
Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_INFO_UPDATE).size(), 2);
Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_UPDATE).size(), 1);
Assertions.assertEquals(sentMessages.get(Consts.LISTING_NEW).size(), 4);
Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COUPON_PERIOD_NEW).size(), 1);
Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_SYMBOL_NEW).size(), 2);
Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_SYMBOL_UPDATE).size(), 2);
Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_CONTACT_NEW).size(), 2);
Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_FIXED_INCOME_SECURITY_UPDATE).size(), 2);
Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_EQUITY_SECURITY_UPDATE).size(), 2);
}
// @Test
// public void test() throws IOException {
// File requestFile = new File(getClass().getClassLoader().getResource("requests/testFondSecuritiesRequest_1.json").getFile());
//
// FondListingsRequest fondListingsRequest = objectMapper.readValue(requestFile, FondListingsRequest.class);
// FondListingsRequestParam param = new FondListingsRequestParam(fondListingsRequest);
//
// ProcessResult result = processor.process(param);
//
// // Проверяем только количество запросов, поскольку выполнение этих запросов зависит от security и company модулей
// // todo upd: поскольку будет производиться переход к полностью асинхронному запросам, этот тест возможно стоит тоже поправить
// Assertions.assertNull(result.getError());
// Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_NEW).size(), 1);
// Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_INFO_UPDATE).size(), 2);
// Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_UPDATE).size(), 1);
// Assertions.assertEquals(sentMessages.get(Consts.LISTING_NEW).size(), 4);
// Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COUPON_PERIOD_NEW).size(), 1);
// Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_SYMBOL_NEW).size(), 2);
// Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_COMPANY_SYMBOL_UPDATE).size(), 2);
// Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_CONTACT_NEW).size(), 2);
// Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_FIXED_INCOME_SECURITY_UPDATE).size(), 2);
// Assertions.assertEquals(sentMessages.get(Consts.DESTINATION_EQUITY_SECURITY_UPDATE).size(), 2);
// }
@Override
public void afterPropertiesSet() throws Exception {

View file

@ -13,6 +13,14 @@ public class CompanyNewRequest {
private String companySymbolValue;
@JsonProperty
private String workflowStatus;
@JsonProperty
private String tradingCode;
@JsonProperty
private String clearingCode;
@JsonProperty
private String registrationCode;
@JsonProperty
private String initiatorCode;
// for update, это поле может использоваться в gateway-api
@JsonProperty
@ -65,4 +73,36 @@ public class CompanyNewRequest {
public void setId(Long id) {
this.id = id;
}
public String getTradingCode() {
return tradingCode;
}
public void setTradingCode(String tradingCode) {
this.tradingCode = tradingCode;
}
public String getClearingCode() {
return clearingCode;
}
public void setClearingCode(String clearingCode) {
this.clearingCode = clearingCode;
}
public String getRegistrationCode() {
return registrationCode;
}
public void setRegistrationCode(String registrationCode) {
this.registrationCode = registrationCode;
}
public String getInitiatorCode() {
return initiatorCode;
}
public void setInitiatorCode(String initiatorCode) {
this.initiatorCode = initiatorCode;
}
}