Skip to content

Commit 4f76911

Browse files
authored
Merge pull request #15 from companieshouse/feature/edit-transformer
edited transformer so legal types don't require sensitive data block
2 parents e4c2332 + 2c474f0 commit 4f76911

File tree

9 files changed

+42
-57
lines changed

9 files changed

+42
-57
lines changed

src/main/java/uk/gov/companieshouse/pscdataapi/data/CorporatePscRoles.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55

66
public enum CorporatePscRoles {
77
CORPORATE_PSC("corporate-entity-person-with-significant-control"),
8-
CORPORATE_BO("corporate-entity-beneficial-owner");
8+
CORPORATE_BO("corporate-entity-beneficial-owner"),
9+
LEGAL_PSC("legal-person-person-with-significant-control"),
10+
LEGAL_BO("legal-person-beneficial-owner");
911

1012
private String role;
1113

src/main/java/uk/gov/companieshouse/pscdataapi/data/IndividualPscRoles.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55

66
public enum IndividualPscRoles {
77
INDIVIDUAL_PSC("individual-person-with-significant-control"),
8-
LEGAL_PSC("legal-person-person-with-significant-control"),
9-
INDIVIDUAL_BO("individual-beneficial-owner"),
10-
LEGAL_BO("legal-person-beneficial-owner");
8+
INDIVIDUAL_BO("individual-beneficial-owner");
119

1210
private String role;
1311

src/main/java/uk/gov/companieshouse/pscdataapi/models/PscData.java

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ public class PscData {
3737
@Field("service_address_is_same_as_registered_office_address")
3838
private Boolean serviceAddressIsSameAsRegisteredOfficeAddress;
3939

40-
@Field("residential_address_is_same_as_service_address")
41-
private Boolean residentialAddressIsSameAsServiceAddress;
42-
4340
@Field("is_sanctioned")
4441
private Boolean isSanctioned;
4542

@@ -113,16 +110,6 @@ public void setServiceAddressIsSameAsRegisteredOfficeAddress(
113110
= serviceAddressIsSameAsRegisteredOfficeAddress;
114111
}
115112

116-
public Boolean getResidentialAddressIsSameAsServiceAddress() {
117-
return residentialAddressIsSameAsServiceAddress;
118-
}
119-
120-
public void setResidentialAddressIsSameAsServiceAddress(
121-
Boolean residentialAddressIsSameAsServiceAddress) {
122-
this.residentialAddressIsSameAsServiceAddress
123-
= residentialAddressIsSameAsServiceAddress;
124-
}
125-
126113
public List<String> getNaturesOfControl() {
127114
return naturesOfControl;
128115
}
@@ -206,8 +193,6 @@ public String toString() {
206193
+ '\''
207194
+ ", serviceAddressIsSameAsRegisteredOfficeAddress="
208195
+ serviceAddressIsSameAsRegisteredOfficeAddress
209-
+ ", residentialAddressIsSameAsServiceAddress="
210-
+ residentialAddressIsSameAsServiceAddress
211196
+ ", isSanctioned="
212197
+ isSanctioned
213198
+ ", ceased="
@@ -240,8 +225,6 @@ public boolean equals(Object object) {
240225
&& Objects.equals(description, pscData.description)
241226
&& Objects.equals(serviceAddressIsSameAsRegisteredOfficeAddress,
242227
pscData.serviceAddressIsSameAsRegisteredOfficeAddress)
243-
&& Objects.equals(residentialAddressIsSameAsServiceAddress,
244-
pscData.residentialAddressIsSameAsServiceAddress)
245228
&& Objects.equals(isSanctioned, pscData.isSanctioned)
246229
&& Objects.equals(ceased, pscData.ceased)
247230
&& Objects.equals(naturesOfControl, pscData.naturesOfControl)
@@ -253,7 +236,7 @@ public boolean equals(Object object) {
253236
public int hashCode() {
254237
return Objects.hash(ceasedOn, etag, address, name, nationality, countryOfResidence,
255238
kind, description, serviceAddressIsSameAsRegisteredOfficeAddress,
256-
residentialAddressIsSameAsServiceAddress, isSanctioned, ceased, naturesOfControl,
239+
isSanctioned, ceased, naturesOfControl,
257240
nameElements, links);
258241
}
259242
}

src/main/java/uk/gov/companieshouse/pscdataapi/models/PscSensitiveData.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public class PscSensitiveData {
88
private Address usualResidentialAddress;
99
@Field("date_of_birth")
1010
private DateOfBirth dateOfBirth;
11+
@Field("residential_address_is_same_as_service_address")
12+
private Boolean residentialAddressIsSameAsServiceAddress;
1113

1214
public Address getUsualResidentialAddress() {
1315
return usualResidentialAddress;
@@ -25,13 +27,25 @@ public void setDateOfBirth(DateOfBirth dateOfBirth) {
2527
this.dateOfBirth = dateOfBirth;
2628
}
2729

30+
public Boolean getResidentialAddressIsSameAsServiceAddress() {
31+
return residentialAddressIsSameAsServiceAddress;
32+
}
33+
34+
public void setResidentialAddressIsSameAsServiceAddress(
35+
Boolean residentialAddressIsSameAsServiceAddress) {
36+
this.residentialAddressIsSameAsServiceAddress
37+
= residentialAddressIsSameAsServiceAddress;
38+
}
39+
2840
@Override
2941
public String toString() {
3042
return "PscSensitiveData{"
3143
+ "usualResidentialAddress="
3244
+ usualResidentialAddress
3345
+ ", dateOfBirth="
3446
+ dateOfBirth
47+
+ ", residentialAddressIsSameAsServiceAddress="
48+
+ residentialAddressIsSameAsServiceAddress
3549
+ '}';
3650
}
3751

@@ -45,11 +59,14 @@ public boolean equals(Object object) {
4559
}
4660
PscSensitiveData that = (PscSensitiveData) object;
4761
return Objects.equals(usualResidentialAddress, that.usualResidentialAddress)
48-
&& Objects.equals(dateOfBirth, that.dateOfBirth);
62+
&& Objects.equals(dateOfBirth, that.dateOfBirth)
63+
&& Objects.equals(residentialAddressIsSameAsServiceAddress,
64+
that.residentialAddressIsSameAsServiceAddress);
4965
}
5066

5167
@Override
5268
public int hashCode() {
53-
return Objects.hash(usualResidentialAddress, dateOfBirth);
69+
return Objects.hash(usualResidentialAddress, dateOfBirth,
70+
residentialAddressIsSameAsServiceAddress);
5471
}
5572
}

src/main/java/uk/gov/companieshouse/pscdataapi/transform/CompanyPscTransformer.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package uk.gov.companieshouse.pscdataapi.transform;
22

3+
import java.time.LocalDate;
34
import java.time.OffsetDateTime;
45
import java.time.format.DateTimeFormatter;
56

@@ -17,6 +18,7 @@
1718
import uk.gov.companieshouse.pscdataapi.models.PscData;
1819
import uk.gov.companieshouse.pscdataapi.models.PscDocument;
1920
import uk.gov.companieshouse.pscdataapi.models.PscSensitiveData;
21+
import uk.gov.companieshouse.pscdataapi.models.Updated;
2022
import uk.gov.companieshouse.pscdataapi.util.PscTransformationHelper;
2123

2224

@@ -45,20 +47,23 @@ public PscDocument transformPsc(String notificationId, FullRecordCompanyPSCApi r
4547
pscDocument.setCompanyNumber(requestBody.getExternalData().getCompanyNumber());
4648
OffsetDateTime deltaAt = requestBody.getInternalData().getDeltaAt();
4749
pscDocument.setDeltaAt(dateTimeFormatter.format(deltaAt));
48-
PscTransformationHelper.createDateFields(requestBody, pscDocument);
50+
pscDocument.setUpdated(new Updated().setAt(LocalDate.now()));
4951
pscDocument.setUpdatedBy(requestBody.getInternalData().getUpdatedBy());
5052
pscDocument.setData(transformDataFields(requestBody));
5153

5254
String kind = requestBody.getExternalData().getData().getKind();
5355

5456
if (IndividualPscRoles.includes(kind)) {
5557
pscDocument.setSensitiveData(transformSensitiveDataFields(requestBody));
56-
handleUraSameAsRo(pscDocument.getData(),
57-
requestBody.getExternalData().getSensitiveData());
58+
5859
handleIndividualFields(requestBody, pscDocument.getData());
5960
}
6061
if (SecurePscRoles.includes(kind)) {
6162
handleSecureFields(requestBody, pscDocument.getData());
63+
} else {
64+
Address serviceAddress = new Address(requestBody.getExternalData()
65+
.getData().getServiceAddress());
66+
pscDocument.getData().setAddress(serviceAddress);
6267
}
6368
return pscDocument;
6469
}
@@ -67,6 +72,8 @@ private PscSensitiveData transformSensitiveDataFields(FullRecordCompanyPSCApi re
6772
PscSensitiveData pscSensitiveData = new PscSensitiveData();
6873
SensitiveData sensitiveData = requestBody.getExternalData().getSensitiveData();
6974
DateOfBirth dateOfBirth = new DateOfBirth(sensitiveData.getDateOfBirth());
75+
pscSensitiveData.setResidentialAddressIsSameAsServiceAddress(requestBody.getExternalData()
76+
.getSensitiveData().getResidentialAddressSameAsServiceAddress());
7077
pscSensitiveData.setDateOfBirth(dateOfBirth);
7178
pscSensitiveData.setUsualResidentialAddress(
7279
new Address(sensitiveData.getUsualResidentialAddress()));
@@ -76,9 +83,6 @@ private PscSensitiveData transformSensitiveDataFields(FullRecordCompanyPSCApi re
7683

7784
private PscData transformDataFields(FullRecordCompanyPSCApi requestBody) {
7885
PscData data = new PscData();
79-
Address serviceAddress = new Address(requestBody.getExternalData()
80-
.getData().getServiceAddress());
81-
data.setAddress(serviceAddress);
8286
data.setCeasedOn(requestBody.getExternalData().getData().getCeasedOn());
8387
data.setDescription(requestBody.getExternalData().getData().getDescription());
8488
data.setEtag(requestBody.getExternalData().getData().getEtag());
@@ -87,8 +91,6 @@ private PscData transformDataFields(FullRecordCompanyPSCApi requestBody) {
8791
data.setName(requestBody.getExternalData().getData().getName());
8892
data.setNationality(requestBody.getExternalData().getData().getNationality());
8993
data.setNaturesOfControl(requestBody.getExternalData().getData().getNaturesOfControl());
90-
data.setResidentialAddressIsSameAsServiceAddress(requestBody.getExternalData()
91-
.getSensitiveData().getResidentialAddressSameAsServiceAddress());
9294
data.setSanctioned(requestBody.getExternalData().getData().getIsSanctioned());
9395
data.setServiceAddressIsSameAsRegisteredOfficeAddress(requestBody.getExternalData()
9496
.getData().getServiceAddressSameAsRegisteredOfficeAddress());
@@ -105,9 +107,4 @@ private void handleSecureFields(FullRecordCompanyPSCApi requestBody, PscData dat
105107
Boolean ceased = requestBody.getExternalData().getData().getCeasedOn() != null;
106108
data.setCeased(ceased);
107109
}
108-
109-
private void handleUraSameAsRo(PscData data, SensitiveData sensitiveData) {
110-
data.setResidentialAddressIsSameAsServiceAddress(sensitiveData
111-
.getResidentialAddressSameAsServiceAddress());
112-
}
113110
}

src/main/java/uk/gov/companieshouse/pscdataapi/util/PscTransformationHelper.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,6 @@ private PscTransformationHelper() {
1616
throw new IllegalStateException("Utility class");
1717
}
1818

19-
/**
20-
* Creates the created and updated fields.
21-
* @param requestBody request payload.
22-
* @param pscDocument output document.
23-
*/
24-
public static void createDateFields(FullRecordCompanyPSCApi requestBody,
25-
PscDocument pscDocument) {
26-
Created created = new Created();
27-
created.setAt(LocalDateTime.parse(requestBody.getInternalData().getCreatedAt()));
28-
Updated updated = new Updated();
29-
updated.setAt(requestBody.getInternalData().getUpdatedAt());
30-
pscDocument.setUpdated(updated);
31-
pscDocument.setCreated(created);
32-
}
33-
3419
/**
3520
* Creates Links field.
3621
* @param requestBody request payload.

src/test/java/uk/gov/companieshouse/pscdataapi/data/CorporatePscRolesTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ private static Stream<Arguments> provideParameters() {
2222
Arguments.of("corporate-entity-beneficial-owner", true),
2323
Arguments.of("individual-person-significant-control", false),
2424
Arguments.of("corporate-owner", false),
25-
Arguments.of("corporate-entity-owner", false)
25+
Arguments.of("corporate-entity-owner", false),
26+
Arguments.of("legal-person-with-significant-control", false),
27+
Arguments.of("legal-person-person-with-significant-control", true)
2628
);
2729
}
2830

src/test/java/uk/gov/companieshouse/pscdataapi/data/IndividualPscRolesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ private static Stream<Arguments> provideParameters() {
2121
Arguments.of("individual-incorrect-psc", false),
2222
Arguments.of("corporate-entity-beneficial-owner", false),
2323
Arguments.of("individual-person-significant-control", false),
24-
Arguments.of("legal-person-person-with-significant-control", true),
24+
Arguments.of("legal-person-person-with-significant-control", false),
2525
Arguments.of("legal-person-with-significant-control", false)
2626
);
2727
}

src/test/java/uk/gov/companieshouse/pscdataapi/util/TestHelper.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ public static FullRecordCompanyPSCApi buildFullRecordPsc(String kind) {
4444
externalData.setPscId("pscId");
4545
InternalData internalData = new InternalData();
4646
internalData.setDeltaAt(OffsetDateTime.parse("2022-01-12T00:00:00Z"));
47-
internalData.setCreatedAt("2022-01-12T00:00:00");
4847
internalData.setUpdatedAt(LocalDate.parse("2022-01-12"));
4948

5049
if(kind.contains("individual")) {
@@ -70,15 +69,17 @@ public static PscDocument buildPscDocument(String kind) {
7069
data.setKind(kind);
7170
data.setName("forename");
7271
data.setLinks(new Links());
73-
data.setAddress(new Address());
72+
if (!kind.contains("secure")) {
73+
data.setAddress(new Address());
74+
}
7475

7576
output.setNotificationId("id");
7677
output.setData(data);
7778
output.setPscId("pscId");
7879
output.setCompanyNumber("1234567");
7980
output.setDeltaAt("20220112000000000000");
8081
Updated updated = new Updated();
81-
updated.setAt(LocalDate.parse("2022-01-12"));
82+
updated.setAt(LocalDate.now());
8283
output.setUpdated(updated);
8384

8485
if(kind.contains("individual")) {

0 commit comments

Comments
 (0)