Skip to content

Commit a5f1708

Browse files
authored
Merge pull request #211 from companieshouse/feature/remove-oracle-query-api-idva3-2687
Remove identity-verification-details endpoint
2 parents 372f1f6 + 23ede78 commit a5f1708

13 files changed

+16
-639
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
<commons-lang3.version>3.18.0</commons-lang3.version>
3737
<!-- Internal -->
3838
<structured-logging.version>3.0.40</structured-logging.version>
39-
<private-api-sdk-java.version>4.0.375</private-api-sdk-java.version>
40-
<api-sdk-java.version>6.4.4</api-sdk-java.version>
39+
<private-api-sdk-java.version>4.0.380</private-api-sdk-java.version>
40+
<api-sdk-java.version>6.4.6</api-sdk-java.version>
4141
<api-security-java.version>2.0.13</api-security-java.version>
4242

4343
<!-- tests -->

src/main/java/uk/gov/companieshouse/pscdataapi/config/ApplicationConfig.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,15 @@ public class ApplicationConfig {
3535
private final String kafkaApiUrl;
3636
private final String metricsApiUrl;
3737
private final String exemptionsApiUrl;
38-
private final String oracleQueryApiUrl;
3938

4039
public ApplicationConfig(@Value("${api.key}") String apiKey,
4140
@Value("${kafka.api.url}") String kafkaApiUrl,
4241
@Value("${metrics.api.url}") String metricsApiUrl,
43-
@Value("${exemptions.api.url}") String exemptionsApiUrl,
44-
@Value("${oracle.query.api.url}") final String oracleQueryApiUrl) {
42+
@Value("${exemptions.api.url}") String exemptionsApiUrl) {
4543
this.apiKey = apiKey;
4644
this.kafkaApiUrl = kafkaApiUrl;
4745
this.metricsApiUrl = metricsApiUrl;
4846
this.exemptionsApiUrl = exemptionsApiUrl;
49-
this.oracleQueryApiUrl = oracleQueryApiUrl;
5047
}
5148

5249
/*
@@ -79,15 +76,6 @@ public Supplier<InternalApiClient> exemptionsApiClientSupplier() {
7976
return () -> buildClient(exemptionsApiUrl);
8077
}
8178

82-
@Bean
83-
public Supplier<InternalApiClient> oracleQueryApiClientSupplier() {
84-
return () -> {
85-
final var internalApiClient = buildClient(oracleQueryApiUrl);
86-
internalApiClient.setInternalBasePath(oracleQueryApiUrl);
87-
return internalApiClient;
88-
};
89-
}
90-
9179
@Bean
9280
@Primary
9381
public ObjectMapper objectMapper() {

src/main/java/uk/gov/companieshouse/pscdataapi/controller/CompanyPscWithIdentityVerificationDetailsGetController.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

src/main/java/uk/gov/companieshouse/pscdataapi/service/CompanyPscService.java

Lines changed: 2 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import uk.gov.companieshouse.api.metrics.PscApi;
1818
import uk.gov.companieshouse.api.metrics.RegisterApi;
1919
import uk.gov.companieshouse.api.metrics.RegistersApi;
20-
import uk.gov.companieshouse.api.model.psc.PscIndividualWithIdentityVerificationDetailsApi;
2120
import uk.gov.companieshouse.api.psc.CorporateEntity;
2221
import uk.gov.companieshouse.api.psc.CorporateEntityBeneficialOwner;
2322
import uk.gov.companieshouse.api.psc.FullRecordCompanyPSCApi;
@@ -33,20 +32,16 @@
3332
import uk.gov.companieshouse.logging.Logger;
3433
import uk.gov.companieshouse.logging.LoggerFactory;
3534
import uk.gov.companieshouse.pscdataapi.api.ChsKafkaApiService;
36-
import uk.gov.companieshouse.pscdataapi.config.FeatureFlags;
3735
import uk.gov.companieshouse.pscdataapi.exceptions.ConflictException;
38-
import uk.gov.companieshouse.pscdataapi.exceptions.InternalDataException;
3936
import uk.gov.companieshouse.pscdataapi.exceptions.NotFoundException;
4037
import uk.gov.companieshouse.pscdataapi.logging.DataMapHolder;
4138
import uk.gov.companieshouse.pscdataapi.models.Created;
4239
import uk.gov.companieshouse.pscdataapi.models.Links;
4340
import uk.gov.companieshouse.pscdataapi.models.PscData;
4441
import uk.gov.companieshouse.pscdataapi.models.PscDeleteRequest;
4542
import uk.gov.companieshouse.pscdataapi.models.PscDocument;
46-
import uk.gov.companieshouse.pscdataapi.models.PscSensitiveData;
4743
import uk.gov.companieshouse.pscdataapi.repository.CompanyPscRepository;
4844
import uk.gov.companieshouse.pscdataapi.transform.CompanyPscTransformer;
49-
import uk.gov.companieshouse.pscdataapi.transform.IdentityVerificationDetailsMapper;
5045

5146
@Component
5247
public class CompanyPscService {
@@ -62,30 +57,22 @@ public class CompanyPscService {
6257
private static final String LEGAL_PERSON_BENEFICIAL_OWNER = "legal-person-beneficial-owner";
6358
private static final String SUPER_SECURE_PERSON_WITH_SIGNIFICANT_CONTROL = "super-secure-person-with-significant-control";
6459
private static final String SUPER_SECURE_BENEFICIAL_OWNER = "super-secure-beneficial-owner";
65-
private static final String NO_INTERNAL_ID_MSG = "sensitive_data.internal_id is null";
6660

67-
private final FeatureFlags featureFlags;
6861
private final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSSSSS");
6962
private final CompanyPscTransformer transformer;
7063
private final CompanyPscRepository repository;
7164
private final ChsKafkaApiService chsKafkaApiService;
7265
private final CompanyExemptionsApiService companyExemptionsApiService;
7366
private final CompanyMetricsApiService companyMetricsApiService;
74-
private final OracleQueryApiService oracleQueryApiService;
75-
private final IdentityVerificationDetailsMapper identityVerificationDetailsMapper;
7667

77-
public CompanyPscService(final FeatureFlags featureFlags, final CompanyPscTransformer transformer, final CompanyPscRepository repository,
68+
public CompanyPscService(final CompanyPscTransformer transformer, final CompanyPscRepository repository,
7869
final ChsKafkaApiService chsKafkaApiService, final CompanyExemptionsApiService companyExemptionsApiService,
79-
final CompanyMetricsApiService companyMetricsApiService, final OracleQueryApiService oracleQueryApiService,
80-
final IdentityVerificationDetailsMapper identityVerificationDetailsMapper) {
81-
this.featureFlags = featureFlags;
70+
final CompanyMetricsApiService companyMetricsApiService) {
8271
this.transformer = transformer;
8372
this.repository = repository;
8473
this.chsKafkaApiService = chsKafkaApiService;
8574
this.companyExemptionsApiService = companyExemptionsApiService;
8675
this.companyMetricsApiService = companyMetricsApiService;
87-
this.oracleQueryApiService = oracleQueryApiService;
88-
this.identityVerificationDetailsMapper = identityVerificationDetailsMapper;
8976
}
9077

9178
public void insertPscRecord(FullRecordCompanyPSCApi requestBody) {
@@ -142,33 +129,6 @@ public Individual getIndividualPsc(final String companyNumber, final String noti
142129
});
143130
}
144131

145-
public PscIndividualWithIdentityVerificationDetailsApi getIndividualWithIdentityVerificationDetails(final String companyNumber,
146-
final String notificationId) {
147-
return repository.getPscByCompanyNumberAndId(companyNumber, notificationId)
148-
.filter(document -> INDIVIDUAL_PERSON_WITH_SIGNIFICANT_CONTROL.equals(document.getData().getKind()))
149-
.map(document -> {
150-
DataMapHolder.get().companyNumber(companyNumber).itemId(notificationId);
151-
152-
final var individualWithIdentityVerificationDetails =
153-
transformer.transformPscDocToIndividualWithIdentityVerificationDetails(document);
154-
final Long internalId = Optional.ofNullable(document.getSensitiveData()).map(
155-
PscSensitiveData::getInternalId).orElseThrow(() -> {
156-
LOGGER.error(NO_INTERNAL_ID_MSG, DataMapHolder.getLogMap());
157-
return new InternalDataException(NO_INTERNAL_ID_MSG);
158-
});
159-
160-
oracleQueryApiService.getIdentityVerificationDetails(internalId).map(
161-
identityVerificationDetailsMapper::mapToIdentityVerificationDetails).ifPresent(
162-
individualWithIdentityVerificationDetails::setIdentityVerificationDetails);
163-
164-
return individualWithIdentityVerificationDetails;
165-
})
166-
.orElseThrow(() -> {
167-
LOGGER.error(NOT_FOUND_MSG, DataMapHolder.getLogMap());
168-
return new NotFoundException(NOT_FOUND_MSG);
169-
});
170-
}
171-
172132
public IndividualBeneficialOwner getIndividualBeneficialOwnerPsc(final String companyNumber, final String notificationId,
173133
final boolean registerView) {
174134
return repository.findById(notificationId)

src/main/java/uk/gov/companieshouse/pscdataapi/service/OracleQueryApiService.java

Lines changed: 0 additions & 59 deletions
This file was deleted.

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

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import org.springframework.stereotype.Component;
99
import uk.gov.companieshouse.api.model.common.Date3Tuple;
1010
import uk.gov.companieshouse.api.model.psc.NameElementsApi;
11-
import uk.gov.companieshouse.api.model.psc.PscIndividualWithIdentityVerificationDetailsApi;
1211
import uk.gov.companieshouse.api.model.psc.PscLinks;
1312
import uk.gov.companieshouse.api.psc.CorporateEntity;
1413
import uk.gov.companieshouse.api.psc.CorporateEntityBeneficialOwner;
@@ -80,40 +79,6 @@ public Individual transformPscDocToIndividual(PscDocument pscDocument, boolean s
8079
return individual;
8180
}
8281

83-
/**
84-
* Transforms a PSC document into an Individual with Identity Verification Details.
85-
*
86-
* @param pscDocument the PSC document to transform
87-
* @return the transformed Individual with Identity Verification Details
88-
*/
89-
public PscIndividualWithIdentityVerificationDetailsApi transformPscDocToIndividualWithIdentityVerificationDetails(
90-
PscDocument pscDocument) {
91-
LOGGER.info("Attempting to transform pscDocument to Individual With Identity Verification Details", DataMapHolder.getLogMap());
92-
93-
final var detailsApi = new PscIndividualWithIdentityVerificationDetailsApi();
94-
detailsApi.setKind(
95-
PscIndividualWithIdentityVerificationDetailsApi.KindEnum.INDIVIDUAL_PERSON_WITH_SIGNIFICANT_CONTROL);
96-
if (pscDocument.getData() != null) {
97-
final var pscData = pscDocument.getData();
98-
99-
detailsApi.setEtag(pscData.getEtag());
100-
detailsApi.setCountryOfResidence(pscData.getCountryOfResidence());
101-
detailsApi.setName(pscData.getName());
102-
detailsApi.setNameElements(mapNameElementsApi(pscData.getNameElements()));
103-
detailsApi.setAddress(mapCommonAddress(pscData.getAddress()));
104-
detailsApi.setNaturesOfControl(pscData.getNaturesOfControl());
105-
detailsApi.setNationality(pscData.getNationality());
106-
detailsApi.setLinks(mapLinksToPscLinks(pscData.getLinks()));
107-
detailsApi.setNotifiedOn(pscData.getNotifiedOn());
108-
detailsApi.setCeasedOn(pscData.getCeasedOn());
109-
}
110-
if (pscDocument.getSensitiveData() != null) {
111-
detailsApi.setDateOfBirth(
112-
mapDate3Tuple(pscDocument.getSensitiveData().getDateOfBirth(), false));
113-
}
114-
return detailsApi;
115-
}
116-
11782
/**
11883
* Transform Individual PSC full record.
11984
*

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

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/main/resources/application.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ api.key=${CHS_API_KEY:chsApiKey}
88
kafka.api.url=${CHS_KAFKA_API_URL:http://localhost:8888}
99
metrics.api.url=${API_LOCAL_URL:http://localhost:8888}
1010
exemptions.api.url=${API_LOCAL_URL:http://localhost:8888}
11-
oracle.query.api.url=${ORACLE_QUERY_API_URL:http://localhost:8888}
1211
spring.data.mongodb.uri=${MONGODB_URL:mongodb://mongo:27017}
1312
spring.data.mongodb.name=company_pscs
1413
# Disable static resources (otherwise NoResourceFoundException when no handler found)

src/test/java/uk/gov/companieshouse/pscdataapi/config/WebSecurityConfigTest.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717
import uk.gov.companieshouse.api.util.security.EricConstants;
1818
import uk.gov.companieshouse.api.util.security.SecurityConstants;
1919
import uk.gov.companieshouse.pscdataapi.controller.CompanyPscFullRecordGetController;
20-
import uk.gov.companieshouse.pscdataapi.controller.CompanyPscWithIdentityVerificationDetailsGetController;
2120
import uk.gov.companieshouse.pscdataapi.service.CompanyPscService;
2221

2322
@ExtendWith(SpringExtension.class)
2423
@WebMvcTest(controllers = {
25-
CompanyPscFullRecordGetController.class,
26-
CompanyPscWithIdentityVerificationDetailsGetController.class,
24+
CompanyPscFullRecordGetController.class
2725
}, properties = {"feature.identity_verification=true"})
2826
class WebSecurityConfigTest {
2927

@@ -33,9 +31,6 @@ class WebSecurityConfigTest {
3331
private static final String GET_INDIVIDUAL_FULL_RECORD_URL = String.format(
3432
"/company/%s/persons-with-significant-control/individual/%s/full_record", MOCK_COMPANY_NUMBER,
3533
MOCK_NOTIFICATION_ID);
36-
private static final String GET_INDIVIDUAL_WITH_IDENTITY_VERIFICATION_DETAILS_URL = String.format(
37-
"/company/%s/persons-with-significant-control/individual/%s/identity-verification-details", MOCK_COMPANY_NUMBER,
38-
MOCK_NOTIFICATION_ID);
3934

4035
@MockitoBean
4136
private CompanyPscService companyPscService;
@@ -52,10 +47,6 @@ void shouldForbidAccessWithUnderprivilegedApiKey() throws Exception {
5247
.headers(headers)
5348
.contentType(APPLICATION_JSON))
5449
.andExpect(status().isForbidden());
55-
mockMvc.perform(get(GET_INDIVIDUAL_WITH_IDENTITY_VERIFICATION_DETAILS_URL)
56-
.headers(headers)
57-
.contentType(APPLICATION_JSON))
58-
.andExpect(status().isForbidden());
5950

6051
}
6152

@@ -68,10 +59,6 @@ void shouldAllowAccessWithInternalUserApiKey() throws Exception {
6859
.headers(headers)
6960
.contentType(APPLICATION_JSON))
7061
.andExpect(status().isOk());
71-
mockMvc.perform(get(GET_INDIVIDUAL_WITH_IDENTITY_VERIFICATION_DETAILS_URL)
72-
.headers(headers)
73-
.contentType(APPLICATION_JSON))
74-
.andExpect(status().isOk());
7562

7663
}
7764

0 commit comments

Comments
 (0)