|
2 | 2 |
|
3 | 3 | import java.time.LocalDate; |
4 | 4 | import java.time.format.DateTimeFormatter; |
5 | | - |
6 | 5 | import java.util.List; |
| 6 | + |
7 | 7 | import org.springframework.stereotype.Component; |
8 | | -import uk.gov.companieshouse.api.model.psc.IndividualFullRecord; |
9 | | -import uk.gov.companieshouse.api.psc.Identification; |
| 8 | +import uk.gov.companieshouse.api.model.common.Date3Tuple; |
| 9 | +import uk.gov.companieshouse.api.model.psc.NameElementsApi; |
| 10 | +import uk.gov.companieshouse.api.model.psc.PscIndividualFullRecordApi; |
| 11 | +import uk.gov.companieshouse.api.model.psc.PscLinks; |
10 | 12 | import uk.gov.companieshouse.api.psc.CorporateEntity; |
11 | 13 | import uk.gov.companieshouse.api.psc.CorporateEntityBeneficialOwner; |
12 | 14 | import uk.gov.companieshouse.api.psc.Data; |
13 | 15 | import uk.gov.companieshouse.api.psc.ExternalData; |
14 | 16 | import uk.gov.companieshouse.api.psc.FullRecordCompanyPSCApi; |
| 17 | +import uk.gov.companieshouse.api.psc.Identification; |
15 | 18 | import uk.gov.companieshouse.api.psc.Individual; |
16 | 19 | import uk.gov.companieshouse.api.psc.IndividualBeneficialOwner; |
17 | 20 | import uk.gov.companieshouse.api.psc.InternalData; |
@@ -89,31 +92,31 @@ public Individual transformPscDocToIndividual( |
89 | 92 | * @param pscDocument PSC. |
90 | 93 | * @return PSC mongo Document. |
91 | 94 | */ |
92 | | - public IndividualFullRecord transformPscDocToIndividualFullRecord(final PscDocument pscDocument) { |
93 | | - logger.info("Attempting to transform pscDocument to Individual Full Record", DataMapHolder.getLogMap()); |
94 | | - |
95 | | - final IndividualFullRecord individualFullRecord = new IndividualFullRecord(); |
| 95 | + public PscIndividualFullRecordApi transformPscDocToIndividualFullRecord(final PscDocument pscDocument) { |
| 96 | + logger.info("Attempting to transform pscDocument to Individual Full Record", |
| 97 | + DataMapHolder.getLogMap()); |
| 98 | + final PscIndividualFullRecordApi pscIndividualFullRecordApi = new PscIndividualFullRecordApi(); |
96 | 99 |
|
97 | 100 | final PscData pscData = pscDocument.getData(); |
98 | | - individualFullRecord.setName(pscData.getName()); |
99 | | - individualFullRecord.setNameElements(mapNameElements(pscData.getNameElements())); |
100 | | - individualFullRecord.setCountryOfResidence(pscData.getCountryOfResidence()); |
101 | | - individualFullRecord.setNotifiedOn(pscData.getNotifiedOn()); |
102 | | - individualFullRecord.setCeasedOn(pscData.getCeasedOn()); |
103 | | - individualFullRecord.setNaturesOfControl(pscData.getNaturesOfControl()); |
104 | | - individualFullRecord.setNationality(pscData.getNationality()); |
105 | | - individualFullRecord.setKind(IndividualFullRecord.KindEnum.INDIVIDUAL_PERSON_WITH_SIGNIFICANT_CONTROL); |
106 | | - individualFullRecord.setLinks(mapLinksToList(pscData.getLinks())); |
107 | | - individualFullRecord.serviceAddress(mapFullRecordAddress(pscData.getAddress())); |
108 | | - individualFullRecord.setEtag(pscData.getEtag()); |
| 101 | + pscIndividualFullRecordApi.setName(pscData.getName()); |
| 102 | + pscIndividualFullRecordApi.setNameElements(mapNameElementsApi(pscData.getNameElements())); |
| 103 | + pscIndividualFullRecordApi.setCountryOfResidence(pscData.getCountryOfResidence()); |
| 104 | + pscIndividualFullRecordApi.setNotifiedOn(pscData.getNotifiedOn()); |
| 105 | + pscIndividualFullRecordApi.setCeasedOn(pscData.getCeasedOn()); |
| 106 | + pscIndividualFullRecordApi.setNaturesOfControl(pscData.getNaturesOfControl()); |
| 107 | + pscIndividualFullRecordApi.setNationality(pscData.getNationality()); |
| 108 | + pscIndividualFullRecordApi.setKind(PscIndividualFullRecordApi.KindEnum.INDIVIDUAL_PERSON_WITH_SIGNIFICANT_CONTROL); |
| 109 | + pscIndividualFullRecordApi.setLinks(mapLinksToPscLinks(pscData.getLinks())); |
| 110 | + pscIndividualFullRecordApi.serviceAddress(mapFullRecordAddress(pscData.getAddress())); |
| 111 | + pscIndividualFullRecordApi.setEtag(pscData.getEtag()); |
109 | 112 |
|
110 | 113 | final PscSensitiveData sensitivePscData = pscDocument.getSensitiveData(); |
111 | | - individualFullRecord.setResidentialAddressSameAsServiceAddress(sensitivePscData.getResidentialAddressIsSameAsServiceAddress()); |
112 | | - individualFullRecord.setDateOfBirth(mapDateOfBirth(sensitivePscData.getDateOfBirth(), true)); |
113 | | - individualFullRecord.setUsualResidentialAddress(mapFullRecordAddress(sensitivePscData.getUsualResidentialAddress())); |
114 | | - individualFullRecord.setInternalId(sensitivePscData.getInternalId()); |
| 114 | + pscIndividualFullRecordApi.setResidentialAddressSameAsServiceAddress(sensitivePscData.getResidentialAddressIsSameAsServiceAddress()); |
| 115 | + pscIndividualFullRecordApi.setDateOfBirth(mapDate3Tuple(sensitivePscData.getDateOfBirth(), true)); |
| 116 | + pscIndividualFullRecordApi.setUsualResidentialAddress(mapFullRecordAddress(sensitivePscData.getUsualResidentialAddress())); |
| 117 | + pscIndividualFullRecordApi.setInternalId(sensitivePscData.getInternalId()); |
115 | 118 |
|
116 | | - return individualFullRecord; |
| 119 | + return pscIndividualFullRecordApi; |
117 | 120 | } |
118 | 121 |
|
119 | 122 | /** |
@@ -491,6 +494,18 @@ private uk.gov.companieshouse.api.psc.DateOfBirth mapDateOfBirth( |
491 | 494 | } |
492 | 495 | } |
493 | 496 |
|
| 497 | + private Date3Tuple mapDate3Tuple(DateOfBirth inputDateOfBirth, boolean showFullDateOfBirth) { |
| 498 | + if (inputDateOfBirth != null) { |
| 499 | + int day = showFullDateOfBirth ? inputDateOfBirth.getDay() : 0; |
| 500 | + int month = inputDateOfBirth.getMonth(); |
| 501 | + int year = inputDateOfBirth.getYear(); |
| 502 | + |
| 503 | + return new Date3Tuple(day, month, year); |
| 504 | + } else { |
| 505 | + return null; |
| 506 | + } |
| 507 | + } |
| 508 | + |
494 | 509 | private uk.gov.companieshouse.api.psc.Address mapAddress( |
495 | 510 | uk.gov.companieshouse.pscdataapi.models.Address inputAddress) { |
496 | 511 | if (inputAddress != null) { |
@@ -571,6 +586,19 @@ private uk.gov.companieshouse.api.model.common.Address mapFullRecordAddress( |
571 | 586 | } |
572 | 587 | } |
573 | 588 |
|
| 589 | + private NameElementsApi mapNameElementsApi(final NameElements inputNameElements) { |
| 590 | + if (inputNameElements != null) { |
| 591 | + final NameElementsApi nameElementsApi = new NameElementsApi(); |
| 592 | + nameElementsApi.setTitle(inputNameElements.getTitle()); |
| 593 | + nameElementsApi.setForename(inputNameElements.getForename()); |
| 594 | + nameElementsApi.setMiddleName(inputNameElements.getMiddleName()); |
| 595 | + nameElementsApi.setSurname(inputNameElements.getSurname()); |
| 596 | + return nameElementsApi; |
| 597 | + } else { |
| 598 | + return null; |
| 599 | + } |
| 600 | + } |
| 601 | + |
574 | 602 | private uk.gov.companieshouse.api.psc.NameElements mapNameElements( |
575 | 603 | NameElements inputNameElements) { |
576 | 604 | if (inputNameElements != null) { |
@@ -603,11 +631,12 @@ private Identification mapIdentification( |
603 | 631 | } |
604 | 632 | } |
605 | 633 |
|
606 | | - private static List<ItemLinkTypes> mapLinksToList(final Links links) { |
607 | | - final ItemLinkTypes itemLinkTypes = new ItemLinkTypes().self(links.getSelf()); |
608 | | - |
609 | | - itemLinkTypes.setStatement(links.getStatement()); |
| 634 | + private static PscLinks mapLinksToPscLinks(final Links links) { |
| 635 | + final PscLinks pscLinks = new PscLinks(); |
| 636 | + pscLinks.setSelf(links.getSelf()); |
| 637 | + pscLinks.setStatement(links.getStatement()); |
| 638 | + pscLinks.setExemptions(links.getExemptions()); |
610 | 639 |
|
611 | | - return List.of(itemLinkTypes); |
| 640 | + return pscLinks; |
612 | 641 | } |
613 | 642 | } |
0 commit comments