@@ -4,7 +4,24 @@ import {
44 ItemCostsResource , CertificateItemPostRequest , CertificateItemRequestResource ,
55 ItemOptionsRequest , CertificateItemPatchRequest , DirectorOrSecretaryDetails , DirectorOrSecretaryDetailsResource ,
66 RegisteredOfficeAddressDetailsResource , RegisteredOfficeAddressDetails , DirectorOrSecretaryDetailsRequest ,
7- RegisteredOfficeAddressDetailsRequest
7+ DesignatedMemberDetails ,
8+ DesignatedMemberDetailsResource ,
9+ GeneralPartnerDetails ,
10+ LimitedPartnerDetailsResource ,
11+ OrdinaryMemberDetailsResource ,
12+ PrinciplePlaceOfBusinessDetailsResource ,
13+ AddressDetailsRequest ,
14+ AddressDetailsResource ,
15+ GeneralPartnerDetailsResource ,
16+ MemberDetails ,
17+ MemberDetailsRequest ,
18+ MemberDetailsResource ,
19+ PartnerDetailsRequest ,
20+ PartnerDetailsResource ,
21+ PartnerDetails ,
22+ PrinciplePlaceOfBusinessDetails ,
23+ OrdinaryMemberDetails ,
24+ LimitedPartnerDetails
825} from "./types" ;
926
1027export default class CertificateMapping {
@@ -13,28 +30,48 @@ export default class CertificateMapping {
1330 const itemOptions : ItemOptionsRequest = certificateItemRequest . itemOptions ;
1431
1532 const directorDetails : DirectorOrSecretaryDetailsResource =
16- this . mapDirectorOrSecretaryDetailsRequestDirectorOrSecretaryDetailsResource ( itemOptions . directorDetails ) ;
33+ this . mapDirectorOrSecretaryDetailsRequestDirectorOrSecretaryDetailsResource ( itemOptions . directorDetails ) ;
1734
1835 const secretaryDetails : DirectorOrSecretaryDetailsResource =
19- this . mapDirectorOrSecretaryDetailsRequestDirectorOrSecretaryDetailsResource ( itemOptions . secretaryDetails ) ;
36+ this . mapDirectorOrSecretaryDetailsRequestDirectorOrSecretaryDetailsResource ( itemOptions . secretaryDetails ) ;
2037
2138 const registeredOfficeAddressDetails : RegisteredOfficeAddressDetailsResource =
22- this . mapRegisteredOfficeRequestToRegisteredOfficeDetails ( itemOptions . registeredOfficeAddressDetails ) ;
39+ this . mapAddressDetailsRequestToAddressDetailsResource ( itemOptions . registeredOfficeAddressDetails ) ;
2340
41+ const principlePlaceOfBusinessDetails : PrinciplePlaceOfBusinessDetailsResource =
42+ this . mapAddressDetailsRequestToAddressDetailsResource ( itemOptions . principlePlaceOfBusinessDetails ) ;
43+
44+ const designatedMemberDetails : DesignatedMemberDetailsResource =
45+ this . mapMemberDetailsRequestToMemberDetailsResource ( itemOptions . designatedMemberDetails ) ;
46+
47+ const ordinaryMemberDetails : OrdinaryMemberDetailsResource =
48+ this . mapMemberDetailsRequestToMemberDetailsResource ( itemOptions . memberDetails ) ;
49+
50+ const generalPartnerDetails : GeneralPartnerDetailsResource =
51+ this . mapPartnerDetailsRequestToPartnerDetailsResource ( itemOptions . generalPartnerDetails ) ;
52+
53+ const limitedPartnerDetails : LimitedPartnerDetailsResource =
54+ this . mapPartnerDetailsRequestToPartnerDetailsResource ( itemOptions . limitedPartnerDetails ) ;
2455 return {
2556 customer_reference : certificateItemRequest . customerReference ,
2657 company_number : certificateItemRequest . companyNumber ,
2758 item_options : {
59+ company_type : itemOptions . companyType ,
2860 certificate_type : itemOptions . certificateType ,
2961 collection_location : itemOptions . collectionLocation ,
3062 contact_number : itemOptions . contactNumber ,
3163 delivery_method : itemOptions . deliveryMethod ,
3264 delivery_timescale : itemOptions . deliveryTimescale ,
65+ designated_member_details : designatedMemberDetails ,
3366 director_details : directorDetails ,
3467 forename : itemOptions . forename ,
68+ general_partner_details : generalPartnerDetails ,
3569 include_company_objects_information : itemOptions . includeCompanyObjectsInformation ,
3670 include_email_copy : itemOptions . includeEmailCopy ,
3771 include_good_standing_information : itemOptions . includeGoodStandingInformation ,
72+ limited_partner_details : limitedPartnerDetails ,
73+ member_details : ordinaryMemberDetails ,
74+ principle_place_of_business_details : principlePlaceOfBusinessDetails ,
3875 registered_office_address_details : registeredOfficeAddressDetails ,
3976 secretary_details : secretaryDetails ,
4077 surname : itemOptions . surname
@@ -47,13 +84,28 @@ export default class CertificateMapping {
4784 const io = body . item_options as ItemOptionsResource ;
4885
4986 const directorDetails : DirectorOrSecretaryDetails =
50- this . mapDirectorOrSecretaryDetailsResourceToDirectorOrSecretaryDetails ( io . director_details ) ;
87+ this . mapDirectorOrSecretaryDetailsResourceToDirectorOrSecretaryDetails ( io . director_details ) ;
5188
5289 const secretaryDetails : DirectorOrSecretaryDetails =
53- this . mapDirectorOrSecretaryDetailsResourceToDirectorOrSecretaryDetails ( io . secretary_details ) ;
90+ this . mapDirectorOrSecretaryDetailsResourceToDirectorOrSecretaryDetails ( io . secretary_details ) ;
5491
5592 const registeredOfficeAddressDetails : RegisteredOfficeAddressDetails =
56- this . mapRegisteredOfficeResourceToRegisteredOffice ( io . registered_office_address_details ) ;
93+ this . mapAddressDetailsResourceToAddressDetails ( io . registered_office_address_details ) ;
94+
95+ const principlePlaceOfBusinessDetails : PrinciplePlaceOfBusinessDetails =
96+ this . mapAddressDetailsResourceToAddressDetails ( io . principle_place_of_business_details ) ;
97+
98+ const designatedMemberDetails : DesignatedMemberDetails =
99+ this . mapMemberDetailsResourceToMemberDetails ( io . designated_member_details ) ;
100+
101+ const ordinaryMemberDetails : OrdinaryMemberDetails =
102+ this . mapMemberDetailsResourceToMemberDetails ( io . member_details ) ;
103+
104+ const generalPartnerDetails : GeneralPartnerDetails =
105+ this . mapPartnerDetailsResourceToPartnerDetails ( io . general_partner_details ) ;
106+
107+ const limitedPartnerDetails : LimitedPartnerDetails =
108+ this . mapPartnerDetailsResourceToPartnerDetails ( io . limited_partner_details ) ;
57109
58110 const certificateItem : CertificateItem = {
59111 companyName : body . company_name ,
@@ -73,14 +125,20 @@ export default class CertificateMapping {
73125 itemOptions : {
74126 certificateType : io . certificate_type ,
75127 collectionLocation : io . collection_location ,
128+ companyType : io . company_type ,
76129 contactNumber : io . contact_number ,
77130 deliveryMethod : io . delivery_method ,
78131 deliveryTimescale : io . delivery_timescale ,
132+ designatedMemberDetails,
79133 directorDetails,
80134 forename : io . forename ,
135+ generalPartnerDetails,
81136 includeCompanyObjectsInformation : io . include_company_objects_information ,
82137 includeEmailCopy : io . include_email_copy ,
83138 includeGoodStandingInformation : io . include_good_standing_information ,
139+ limitedPartnerDetails,
140+ memberDetails : ordinaryMemberDetails ,
141+ principlePlaceOfBusinessDetails,
84142 registeredOfficeAddressDetails,
85143 secretaryDetails,
86144 surname : io . surname
@@ -115,9 +173,9 @@ export default class CertificateMapping {
115173 : undefined ;
116174 }
117175
118- private static mapRegisteredOfficeRequestToRegisteredOfficeDetails (
119- request : RegisteredOfficeAddressDetailsRequest ) : RegisteredOfficeAddressDetailsResource {
120- const registeredOfficeAddressDetails : RegisteredOfficeAddressDetailsResource = {
176+ private static mapAddressDetailsRequestToAddressDetailsResource (
177+ request : AddressDetailsRequest ) : AddressDetailsResource {
178+ const registeredOfficeAddressDetails : AddressDetailsResource = {
121179 include_address_records_type : request ?. includeAddressRecordsType ,
122180 include_dates : request ?. includeDates
123181 } ;
@@ -144,7 +202,7 @@ export default class CertificateMapping {
144202 : undefined ;
145203 }
146204
147- private static mapRegisteredOfficeResourceToRegisteredOffice (
205+ private static mapAddressDetailsResourceToAddressDetails (
148206 resource : RegisteredOfficeAddressDetailsResource ) : RegisteredOfficeAddressDetails {
149207 const registeredOfficeAddressDetails : RegisteredOfficeAddressDetails = {
150208 includeAddressRecordsType : resource ?. include_address_records_type ,
@@ -155,4 +213,44 @@ export default class CertificateMapping {
155213 ? registeredOfficeAddressDetails
156214 : undefined ;
157215 }
216+
217+ private static mapMemberDetailsRequestToMemberDetailsResource ( request : MemberDetailsRequest ) : MemberDetailsResource {
218+ const memberDetailsResource : MemberDetailsResource = {
219+ include_address : request ?. includeAddress ,
220+ include_appointment_date : request ?. includeAppointmentDate ,
221+ include_basic_information : request ?. includeBasicInformation ,
222+ include_country_of_residence : request ?. includeCountryOfResidence ,
223+ include_dob_type : request ?. includeDobType
224+ } ;
225+ return Object . values ( memberDetailsResource ) . some ( ( value ) => value !== undefined )
226+ ? memberDetailsResource
227+ : undefined ;
228+ }
229+
230+ private static mapMemberDetailsResourceToMemberDetails ( resource : MemberDetailsResource ) : MemberDetails {
231+ const memberDetails : MemberDetails = {
232+ includeAddress : resource ?. include_address ,
233+ includeAppointmentDate : resource ?. include_appointment_date ,
234+ includeBasicInformation : resource ?. include_basic_information ,
235+ includeCountryOfResidence : resource ?. include_country_of_residence ,
236+ includeDobType : resource ?. include_dob_type
237+ } ;
238+ return Object . values ( memberDetails ) . some ( ( value ) => value !== undefined )
239+ ? memberDetails
240+ : undefined ;
241+ }
242+
243+ private static mapPartnerDetailsRequestToPartnerDetailsResource ( request : PartnerDetailsRequest ) : PartnerDetailsResource {
244+ const partnerDetailsResource : PartnerDetailsResource = {
245+ include_basic_information : request ?. includeBasicInformation
246+ } ;
247+ return Object . values ( partnerDetailsResource ) . some ( ( value ) => value !== undefined ) ? partnerDetailsResource : undefined ;
248+ }
249+
250+ private static mapPartnerDetailsResourceToPartnerDetails ( resource : PartnerDetailsResource ) : PartnerDetails {
251+ const partnerDetails : PartnerDetails = {
252+ includeBasicInformation : resource ?. include_basic_information
253+ } ;
254+ return Object . values ( partnerDetails ) . some ( ( value ) => value !== undefined ) ? partnerDetails : undefined ;
255+ }
158256}
0 commit comments