add CompaniesRequest
This commit is contained in:
parent
6832899c2a
commit
338d8274ab
10 changed files with 211 additions and 77 deletions
|
|
@ -2,7 +2,8 @@ package ru.spcex.clearing.gatewayapi.config;
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.*;
|
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
||||||
|
import ru.spcex.clearing.gatewayapi.logic.listings.*;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.CompaniesRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.request.ListingsRequest;
|
import ru.spcex.clearing.gatewayapi.request.ListingsRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.response.CommonResponse;
|
import ru.spcex.clearing.gatewayapi.response.CommonResponse;
|
||||||
|
|
||||||
|
|
@ -42,5 +43,27 @@ public class GatewayController {
|
||||||
return commonResponse;
|
return commonResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Put companies")
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 200, message = "OK", response = CommonResponse.class),
|
||||||
|
@ApiResponse(code = 400, message = "Ошибка валидации", response = CommonResponse.class)
|
||||||
|
})
|
||||||
|
@RequestMapping(
|
||||||
|
path = "/companies",
|
||||||
|
method = RequestMethod.POST,
|
||||||
|
consumes = MediaType.APPLICATION_JSON_VALUE,
|
||||||
|
produces = MediaType.APPLICATION_JSON_VALUE
|
||||||
|
)
|
||||||
|
@ResponseBody
|
||||||
|
public CommonResponse companies(@RequestBody CompaniesRequest request) {
|
||||||
|
// todo pack it to abstract class
|
||||||
|
CommonResponse commonResponse = new CommonResponse();
|
||||||
|
commonResponse.setId(request.getId());
|
||||||
|
commonResponse.setType(request.getType());
|
||||||
|
commonResponse.setDatetime(request.getDatetime());
|
||||||
|
commonResponse.setSection(request.getSection());
|
||||||
|
commonResponse.setCode(200); // todo set result code
|
||||||
|
return commonResponse;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
package ru.spcex.clearing.gatewayapi.logic;
|
package ru.spcex.clearing.gatewayapi.logic.listings;
|
||||||
|
|
||||||
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||||
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
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.IncomeSecurity;
|
import ru.spcex.clearing.gatewayapi.request.objects.IncomeSecurity;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.platform.enumeration.InstrumentType;
|
import ru.spcex.platform.enumeration.InstrumentType;
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package ru.spcex.clearing.gatewayapi.logic;
|
package ru.spcex.clearing.gatewayapi.logic.listings;
|
||||||
|
|
||||||
|
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.objects.*;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package ru.spcex.clearing.gatewayapi.logic;
|
package ru.spcex.clearing.gatewayapi.logic.listings;
|
||||||
|
|
||||||
|
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.objects.*;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.spcex.clearing.gatewayapi.logic;
|
package ru.spcex.clearing.gatewayapi.logic.listings;
|
||||||
|
|
||||||
import ru.spcex.clearing.gatewayapi.request.ListingsRequest;
|
import ru.spcex.clearing.gatewayapi.request.ListingsRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.request.objects.IncomeSecurity;
|
import ru.spcex.clearing.gatewayapi.request.objects.IncomeSecurity;
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package ru.spcex.clearing.gatewayapi.logic;
|
package ru.spcex.clearing.gatewayapi.logic.listings;
|
||||||
|
|
||||||
|
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
||||||
|
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
||||||
import ru.spcex.clearing.gatewayapi.request.objects.IncomeSecurity;
|
import ru.spcex.clearing.gatewayapi.request.objects.IncomeSecurity;
|
||||||
import ru.spcex.clearing.gatewayapi.request.objects.Listing;
|
import ru.spcex.clearing.gatewayapi.request.objects.Listing;
|
||||||
import ru.spcex.platform.enumeration.BondType;
|
import ru.spcex.platform.enumeration.BondType;
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request;
|
||||||
|
|
||||||
|
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 java.time.Instant;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class BaseRequest {
|
||||||
|
|
||||||
|
@JsonProperty("id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Передавать новый UUID, если процесс стартовал по расписанию, или UUID, возвращенный в Клиринговую
|
||||||
|
систему в ответ на запрос Клиринговой системы об экспорте ценных бумаг (см. п. «Сигнальный REST API»),
|
||||||
|
если процесс стартовал по запросу от Клиринговой системы.
|
||||||
|
""",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120002"
|
||||||
|
)
|
||||||
|
private UUID id;
|
||||||
|
|
||||||
|
@JsonProperty("type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Передавать «DAY_START», если процесс стартовал по расписанию, или «ON_DEMAND»,
|
||||||
|
если процесс стартовал по запросу от Клиринговой системы.
|
||||||
|
""",
|
||||||
|
example = "DAY_START"
|
||||||
|
)
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@JsonProperty("datetime")
|
||||||
|
@JsonDeserialize(using = InstantDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Передавать дату и время формирования JSON объекта в формате «ДД.ММ.ГГГГ ЧЧ:ММ:СС:ссс».",
|
||||||
|
example = "01.01.2023 12:34:56:789"
|
||||||
|
)
|
||||||
|
private Instant datetime;
|
||||||
|
|
||||||
|
@JsonProperty("section")
|
||||||
|
@ApiModelProperty(value = "Секция (FOND или MKR)", example = "FOND")
|
||||||
|
private String section;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Instant getDatetime() {
|
||||||
|
return datetime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDatetime(Instant datetime) {
|
||||||
|
this.datetime = datetime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSection() {
|
||||||
|
return section;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSection(String section) {
|
||||||
|
this.section = section;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,94 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.objects.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class CompaniesRequest extends BaseRequest {
|
||||||
|
@JsonProperty("company")
|
||||||
|
@ApiModelProperty(value = "Список компаний")
|
||||||
|
private List<MemberCompany> companyList;
|
||||||
|
|
||||||
|
@JsonProperty("company_info")
|
||||||
|
@ApiModelProperty(value = "Список профилей участников")
|
||||||
|
private List<MemberCompanyInfo> companyInfoList;
|
||||||
|
|
||||||
|
@JsonProperty("company_clearing_category")
|
||||||
|
@ApiModelProperty(value = "Список категорий участников клиринга")
|
||||||
|
private List<MemberCompanyClearingCategory> companyClearingCategoryList;
|
||||||
|
|
||||||
|
@JsonProperty("company_symbols")
|
||||||
|
@ApiModelProperty(value = "Список реквизитов участников")
|
||||||
|
private List<MemberCompanySymbols> memberCompanySymbolsList;
|
||||||
|
|
||||||
|
@JsonProperty("contact")
|
||||||
|
@ApiModelProperty(value = "Список контактов участников")
|
||||||
|
private List<MemberContact> contactList;
|
||||||
|
|
||||||
|
@JsonProperty("profile_document")
|
||||||
|
@ApiModelProperty(value = "Список документов участников")
|
||||||
|
private List<ProfileDocument> profileDocumentList;
|
||||||
|
|
||||||
|
@JsonProperty("client")
|
||||||
|
@ApiModelProperty(value = "Список клиентов участников")
|
||||||
|
private List<Client> clientList;
|
||||||
|
|
||||||
|
|
||||||
|
public List<MemberCompany> getCompanyList() {
|
||||||
|
return companyList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanyList(List<MemberCompany> companyList) {
|
||||||
|
this.companyList = companyList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MemberCompanyInfo> getCompanyInfoList() {
|
||||||
|
return companyInfoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanyInfoList(List<MemberCompanyInfo> companyInfoList) {
|
||||||
|
this.companyInfoList = companyInfoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MemberCompanyClearingCategory> getCompanyClearingCategoryList() {
|
||||||
|
return companyClearingCategoryList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanyClearingCategoryList(List<MemberCompanyClearingCategory> companyClearingCategoryList) {
|
||||||
|
this.companyClearingCategoryList = companyClearingCategoryList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MemberCompanySymbols> getMemberCompanySymbolsList() {
|
||||||
|
return memberCompanySymbolsList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMemberCompanySymbolsList(List<MemberCompanySymbols> memberCompanySymbolsList) {
|
||||||
|
this.memberCompanySymbolsList = memberCompanySymbolsList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MemberContact> getContactList() {
|
||||||
|
return contactList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContactList(List<MemberContact> contactList) {
|
||||||
|
this.contactList = contactList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ProfileDocument> getProfileDocumentList() {
|
||||||
|
return profileDocumentList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProfileDocumentList(List<ProfileDocument> profileDocumentList) {
|
||||||
|
this.profileDocumentList = profileDocumentList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Client> getClientList() {
|
||||||
|
return clientList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClientList(List<Client> clientList) {
|
||||||
|
this.clientList = clientList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,49 +1,12 @@
|
||||||
package ru.spcex.clearing.gatewayapi.request;
|
package ru.spcex.clearing.gatewayapi.request;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
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.request.objects.*;
|
import ru.spcex.clearing.gatewayapi.request.objects.*;
|
||||||
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class ListingsRequest {
|
|
||||||
@JsonProperty("id")
|
|
||||||
@ApiModelProperty(
|
|
||||||
value = """
|
|
||||||
Передавать новый UUID, если процесс стартовал по расписанию, или UUID, возвращенный в Клиринговую
|
|
||||||
систему в ответ на запрос Клиринговой системы об экспорте ценных бумаг (см. п. «Сигнальный REST API»),
|
|
||||||
если процесс стартовал по запросу от Клиринговой системы.
|
|
||||||
""",
|
|
||||||
example = "ef47f76c-bcea-11ed-afa1-0242ac120002"
|
|
||||||
)
|
|
||||||
private UUID id;
|
|
||||||
|
|
||||||
@JsonProperty("type")
|
|
||||||
@ApiModelProperty(
|
|
||||||
value = """
|
|
||||||
Передавать «DAY_START», если процесс стартовал по расписанию, или «ON_DEMAND»,
|
|
||||||
если процесс стартовал по запросу от Клиринговой системы.
|
|
||||||
""",
|
|
||||||
example = "DAY_START"
|
|
||||||
)
|
|
||||||
private String type;
|
|
||||||
|
|
||||||
@JsonProperty("datetime")
|
|
||||||
@JsonDeserialize(using = InstantDeserializer.class)
|
|
||||||
@ApiModelProperty(
|
|
||||||
value = "Передавать дату и время формирования JSON объекта в формате «ДД.ММ.ГГГГ ЧЧ:ММ:СС:ссс».",
|
|
||||||
example = "01.01.2023 12:34:56:789"
|
|
||||||
)
|
|
||||||
private Instant datetime;
|
|
||||||
|
|
||||||
@JsonProperty("section")
|
|
||||||
@ApiModelProperty(value = "Секция (FOND или MKR)", example = "FOND")
|
|
||||||
private String section;
|
|
||||||
|
|
||||||
|
public class ListingsRequest extends BaseRequest {
|
||||||
@JsonProperty("security")
|
@JsonProperty("security")
|
||||||
@ApiModelProperty(value = "Список security")
|
@ApiModelProperty(value = "Список security")
|
||||||
private List<IncomeSecurity> securities;
|
private List<IncomeSecurity> securities;
|
||||||
|
|
@ -80,39 +43,6 @@ public class ListingsRequest {
|
||||||
@ApiModelProperty(value = "Список контактов компаний эмитентов")
|
@ApiModelProperty(value = "Список контактов компаний эмитентов")
|
||||||
private List<IssuerContact> issuerContactList;
|
private List<IssuerContact> issuerContactList;
|
||||||
|
|
||||||
|
|
||||||
public UUID getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(UUID id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Instant getDatetime() {
|
|
||||||
return datetime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatetime(Instant datetime) {
|
|
||||||
this.datetime = datetime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSection() {
|
|
||||||
return section;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSection(String section) {
|
|
||||||
this.section = section;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<IncomeSecurity> getSecurities() {
|
public List<IncomeSecurity> getSecurities() {
|
||||||
return securities;
|
return securities;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue