Skip to content

Commit 03f6e92

Browse files
committed
SDK-2703: Add support for configuring check result, for WATCHLIST_ADVANCED_CA check in the sandbox
1 parent ff11e3c commit 03f6e92

File tree

6 files changed

+142
-1
lines changed

6 files changed

+142
-1
lines changed

yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReports.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import static com.yoti.api.client.docs.DocScanConstants.SYNECTICS_IDENTITY_FRAUD;
1111
import static com.yoti.api.client.docs.DocScanConstants.THIRD_PARTY_IDENTITY;
1212
import static com.yoti.api.client.docs.DocScanConstants.THIRD_PARTY_IDENTITY_FRAUD_ONE;
13+
import static com.yoti.api.client.docs.DocScanConstants.WATCHLIST_ADVANCED_CA;
1314
import static com.yoti.api.client.docs.DocScanConstants.WATCHLIST_SCREENING;
1415

1516
import java.util.ArrayList;
@@ -25,6 +26,7 @@
2526
import com.yoti.api.client.sandbox.docs.request.check.SandboxSynecticsIdentityFraudCheck;
2627
import com.yoti.api.client.sandbox.docs.request.check.SandboxThirdPartyIdentityCheck;
2728
import com.yoti.api.client.sandbox.docs.request.check.SandboxThirdPartyIdentityFraudOneCheck;
29+
import com.yoti.api.client.sandbox.docs.request.check.SandboxWatchlistAdvancedCaCheck;
2830
import com.yoti.api.client.sandbox.docs.request.check.SandboxWatchlistScreeningCheck;
2931

3032
import com.fasterxml.jackson.annotation.JsonInclude;
@@ -66,6 +68,9 @@ public class SandboxCheckReports {
6668
@JsonProperty(WATCHLIST_SCREENING)
6769
private final SandboxWatchlistScreeningCheck watchlistScreeningCheck;
6870

71+
@JsonProperty(WATCHLIST_ADVANCED_CA)
72+
private final List<SandboxWatchlistAdvancedCaCheck> watchlistAdvancedCaChecks;
73+
6974
@JsonProperty("async_report_delay")
7075
private final Integer asyncReportDelay;
7176

@@ -80,6 +85,7 @@ public class SandboxCheckReports {
8085
List<SandboxSynecticsIdentityFraudCheck> synecticsIdentityFraudChecks,
8186
SandboxThirdPartyIdentityFraudOneCheck thirdPartyIdentityFraudOneCheck,
8287
SandboxWatchlistScreeningCheck watchlistScreeningCheck,
88+
List<SandboxWatchlistAdvancedCaCheck> watchlistAdvancedCaChecks,
8389
Integer asyncReportsDelay) {
8490
this.documentTextDataChecks = documentTextDataChecks;
8591
this.documentAuthenticityChecks = documentAuthenticityChecks;
@@ -92,6 +98,7 @@ public class SandboxCheckReports {
9298
this.synecticsIdentityFraudChecks = synecticsIdentityFraudChecks;
9399
this.thirdPartyIdentityFraudOneCheck = thirdPartyIdentityFraudOneCheck;
94100
this.watchlistScreeningCheck = watchlistScreeningCheck;
101+
this.watchlistAdvancedCaChecks = watchlistAdvancedCaChecks;
95102
this.asyncReportDelay = asyncReportsDelay;
96103
}
97104

@@ -141,6 +148,10 @@ public SandboxWatchlistScreeningCheck getWatchlistScreeningCheck() {
141148
return watchlistScreeningCheck;
142149
}
143150

151+
public List<SandboxWatchlistAdvancedCaCheck> getWatchlistAdvancedCaChecks() {
152+
return watchlistAdvancedCaChecks;
153+
}
154+
144155
public Integer getAsyncReportDelay() {
145156
return asyncReportDelay;
146157
}
@@ -172,6 +183,8 @@ public static class Builder {
172183

173184
private SandboxWatchlistScreeningCheck watchlistScreeningCheck;
174185

186+
private List<SandboxWatchlistAdvancedCaCheck> watchlistAdvancedCaChecks = new ArrayList<>();
187+
175188
private Integer asyncReportDelay;
176189

177190
private Builder() {}
@@ -231,6 +244,11 @@ public Builder withWatchlistScreeningCheck(SandboxWatchlistScreeningCheck watchl
231244
return this;
232245
}
233246

247+
public Builder withWatchlistAdvancedCaCheck(SandboxWatchlistAdvancedCaCheck watchlistAdvancedCaCheck) {
248+
this.watchlistAdvancedCaChecks.add(watchlistAdvancedCaCheck);
249+
return this;
250+
}
251+
234252
public Builder withAsyncReportDelay(int asyncReportDelay) {
235253
this.asyncReportDelay = asyncReportDelay;
236254
return this;
@@ -239,7 +257,7 @@ public Builder withAsyncReportDelay(int asyncReportDelay) {
239257
public SandboxCheckReports build() {
240258
return new SandboxCheckReports(textDataCheck, documentAuthenticityCheck, livenessCheck, documentFaceMatchCheck, idDocumentComparisonCheck,
241259
supplementaryDocumentTextDataCheck, thirdPartyIdentityCheck, faceComparisonCheck, synecticsIdentityFraudChecks,
242-
thirdPartyIdentityFraudOneCheck, watchlistScreeningCheck, asyncReportDelay);
260+
thirdPartyIdentityFraudOneCheck, watchlistScreeningCheck, watchlistAdvancedCaChecks, asyncReportDelay);
243261
}
244262

245263
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.yoti.api.client.sandbox.docs.request.check;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
public class SandboxCaProfileSourcesFilter extends SandboxCaSourcesFilter {
6+
7+
@JsonProperty("search_profile")
8+
private String searchProfile;
9+
10+
SandboxCaProfileSourcesFilter(String searchProfile) {
11+
this.searchProfile = searchProfile;
12+
}
13+
14+
public String getSearchProfile() {
15+
return searchProfile;
16+
}
17+
18+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.yoti.api.client.sandbox.docs.request.check;
2+
3+
import com.fasterxml.jackson.annotation.JsonSubTypes;
4+
import com.fasterxml.jackson.annotation.JsonTypeInfo;
5+
6+
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type")
7+
@JsonSubTypes({
8+
@JsonSubTypes.Type(value = SandboxCaTypeListSourcesFilter.class, name = "TYPE_LIST"),
9+
@JsonSubTypes.Type(value = SandboxCaProfileSourcesFilter.class, name = "PROFILE")
10+
})
11+
public abstract class SandboxCaSourcesFilter {
12+
13+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.yoti.api.client.sandbox.docs.request.check;
2+
3+
import java.util.List;
4+
5+
import com.fasterxml.jackson.annotation.JsonProperty;
6+
7+
public class SandboxCaTypeListSourcesFilter extends SandboxCaSourcesFilter {
8+
9+
@JsonProperty("types")
10+
private final List<String> types;
11+
12+
SandboxCaTypeListSourcesFilter(List<String> types) {
13+
this.types = types;
14+
}
15+
16+
public List<String> getTypes() {
17+
return types;
18+
}
19+
20+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.yoti.api.client.sandbox.docs.request.check;
2+
3+
import java.util.List;
4+
5+
import com.yoti.api.client.sandbox.docs.request.check.report.SandboxCheckReport;
6+
7+
import com.fasterxml.jackson.annotation.JsonProperty;
8+
9+
public class SandboxWatchlistAdvancedCaCheck extends SandboxCheck {
10+
11+
@JsonProperty("sources_filter")
12+
private final SandboxCaSourcesFilter sourcesFilter;
13+
14+
SandboxWatchlistAdvancedCaCheck(SandboxCheckResult result, SandboxCaSourcesFilter sourcesFilter) {
15+
super(result);
16+
this.sourcesFilter = sourcesFilter;
17+
}
18+
19+
public SandboxCaSourcesFilter getSourcesFilter() {
20+
return sourcesFilter;
21+
}
22+
23+
public static Builder builder() {
24+
return new Builder();
25+
}
26+
27+
/**
28+
* Builder for {@link SandboxWatchlistAdvancedCaCheck}
29+
*/
30+
public static class Builder extends SandboxCheck.Builder<Builder> {
31+
32+
private SandboxCaSourcesFilter sourcesFilter;
33+
34+
private Builder() {}
35+
36+
public Builder withTypeListFilter(List<String> types) {
37+
this.sourcesFilter = new SandboxCaTypeListSourcesFilter(types);
38+
return self();
39+
}
40+
41+
public Builder withProfileFilter(String searchProfile) {
42+
this.sourcesFilter = new SandboxCaProfileSourcesFilter(searchProfile);
43+
return self();
44+
}
45+
46+
@Override
47+
protected Builder self() {
48+
return this;
49+
}
50+
51+
@Override
52+
public SandboxWatchlistAdvancedCaCheck build() {
53+
SandboxCheckReport report = new SandboxCheckReport(recommendation, breakdown);
54+
SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate);
55+
56+
return new SandboxWatchlistAdvancedCaCheck(result, sourcesFilter);
57+
}
58+
59+
}
60+
}

yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReportsTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.yoti.api.client.sandbox.docs.request.check.SandboxSynecticsIdentityFraudCheck;
1515
import com.yoti.api.client.sandbox.docs.request.check.SandboxThirdPartyIdentityCheck;
1616
import com.yoti.api.client.sandbox.docs.request.check.SandboxThirdPartyIdentityFraudOneCheck;
17+
import com.yoti.api.client.sandbox.docs.request.check.SandboxWatchlistAdvancedCaCheck;
1718
import com.yoti.api.client.sandbox.docs.request.check.SandboxWatchlistScreeningCheck;
1819

1920
import org.junit.Test;
@@ -35,6 +36,7 @@ public class SandboxCheckReportsTest {
3536
@Mock SandboxSynecticsIdentityFraudCheck synecticsIdentityFraudCheckMock;
3637
@Mock SandboxThirdPartyIdentityFraudOneCheck thirdPartyIdentityFraudOneCheckMock;
3738
@Mock SandboxWatchlistScreeningCheck watchlistScreeningCheckMock;
39+
@Mock SandboxWatchlistAdvancedCaCheck watchlistAdvancedCaCheckMock;
3840

3941
@Test
4042
public void builder_shouldAllowDocumentAuthenticityChecks() {
@@ -142,6 +144,16 @@ public void builder_shouldAllowWatchlistScreeningCheck() {
142144
assertThat(result.getWatchlistScreeningCheck(), is(watchlistScreeningCheckMock));
143145
}
144146

147+
@Test
148+
public void builder_shouldAllowWatchlistAdvancedCaChecks() {
149+
SandboxCheckReports result = SandboxCheckReports.builder()
150+
.withWatchlistAdvancedCaCheck(watchlistAdvancedCaCheckMock)
151+
.build();
152+
153+
assertThat(result.getWatchlistAdvancedCaChecks(), hasSize(1));
154+
assertThat(result.getWatchlistAdvancedCaChecks().get(0), is(watchlistAdvancedCaCheckMock));
155+
}
156+
145157
@Test
146158
public void builder_shouldAllowOverridingOfAsyncReportDelay() {
147159
SandboxCheckReports result = SandboxCheckReports.builder()

0 commit comments

Comments
 (0)