diff --git a/MIGRATION-GUIDE.md b/MIGRATION-GUIDE.md index fc24cc663..5cd3343cf 100644 --- a/MIGRATION-GUIDE.md +++ b/MIGRATION-GUIDE.md @@ -369,6 +369,21 @@ Use the new versioned API under `voice().v1()` to get access to [VoiceService](h ### [`Verification`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/package-summary.html) +#### Replacement APIs + +Use the new versioned API under `verification().v1()` to get access to [VerificationService](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationService.html): [`sinchClient.verification().v1()`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/VerificationService.html#v1()) + +| Old interface | New Equivalent in `verification().v1()` | +|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| verifications() `start` related APIs | [v1().verificationStart()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationStartService.html) | +| verifications() `report` related APIs | [v1().verificationReport()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.html) | +| verificationStatus() | [v1().verificationStatus()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationStatusService.html) | +| webhooks() | [v1().webhooks()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/WebHooksService.html) | +| VerificationStartService | [VerificationsStartService](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationsStartService.html) | +| VerificationReportService | [VerificationsReportService](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationsReportService.html) | +| VerificationStatusService | [VerificationsStatusService](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationsStatusService.html) | +| WebHooksService | [WebhooksService](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/WebhooksService.html) | + #### Replacement models ##### Common Report @@ -442,13 +457,3 @@ Use the new versioned API under `voice().v1()` to get access to [VoiceService](h - `VerificationMethod.DATA` enum no longer defined. No need to be replaced because not public definition is required. - `template` field removed from `VerificationStartRequestSms`. -#### Replacement APIs - -Use the new versioned API under `verification().v1()` to get access to [VerificationService](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationService.html): [`sinchClient.verification().v1()`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/VerificationService.html#v1()) - -| Old interface | New Equivalent in `verification().v1()` | -|---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| verifications() `start` related APIs | [v1().verificationStart()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationStartService.html) | -| verifications() `report` related APIs | [v1().verificationReport()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.html) | -| verificationStatus() | [v1().verificationStatus()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/VerificationStatusService.html) | -| webhooks() | [v1().webhooks()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/api/v1/WebHooksService.html) | diff --git a/client/src/main/com/sinch/sdk/domains/verification/adapters/VerificationService.java b/client/src/main/com/sinch/sdk/domains/verification/adapters/VerificationService.java index ec078fd2c..5eb6d860a 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/adapters/VerificationService.java +++ b/client/src/main/com/sinch/sdk/domains/verification/adapters/VerificationService.java @@ -9,10 +9,6 @@ public class VerificationService implements com.sinch.sdk.domains.verification.V private final com.sinch.sdk.domains.verification.api.v1.VerificationService v1; - static { - LocalLazyInit.init(); - } - public VerificationService( ApplicationCredentials credentials, VerificationContext context, @@ -26,20 +22,4 @@ public VerificationService( public com.sinch.sdk.domains.verification.api.v1.VerificationService v1() { return this.v1; } - - static final class LocalLazyInit { - - private LocalLazyInit() { - IdentityMapper.initMapper(); - } - - public static LocalLazyInit init() { - return LocalLazyInit.LazyHolder.INSTANCE; - } - - private static class LazyHolder { - - public static final LocalLazyInit INSTANCE = new LocalLazyInit(); - } - } } diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationService.java b/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationService.java index a09e7c397..fc01b4a52 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationService.java +++ b/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationService.java @@ -17,7 +17,7 @@ public interface VerificationService { * href="https://developers.sinch.com/docs/verification/api-reference/verification/tag/Verifications">Documentation * @since 1.1 */ - VerificationStartService verificationStart(); + VerificationsStartService verificationStart(); /** * Verifications Report Service instance @@ -27,7 +27,7 @@ public interface VerificationService { * href="https://developers.sinch.com/docs/verification/api-reference/verification/tag/Verifications">Documentation * @since 1.1 */ - VerificationReportService verificationReport(); + VerificationsReportService verificationReport(); /** * Verifications Status Service instance @@ -37,7 +37,7 @@ public interface VerificationService { * href="https://developers.sinch.com/docs/verification/api-reference/verification/tag/Verification-status">Documentation * @since 1.1 */ - VerificationStatusService verificationStatus(); + VerificationsStatusService verificationStatus(); /** * Webhooks helpers instance @@ -47,5 +47,5 @@ public interface VerificationService { * href="https://developers.sinch.com/docs/verification/api-reference/verification/tag/Verification-callbacks">Documentation * @since 1.1 */ - WebHooksService webhooks(); + WebhooksService webhooks(); } diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationStatusService.java b/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationStatusService.java deleted file mode 100644 index 3b5081d9a..000000000 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationStatusService.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.sinch.sdk.domains.verification.api.v1; - -import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; -import com.sinch.sdk.domains.verification.models.v1.VerificationMethod; -import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse; - -/** - * Get the status of specific verification requests in the verification process. Returns the status - * of pending and completed verifications. You can retrieve the status of verification requests by - * using the ID of the request, the phone number of the user being verified, or a custom reference - * string. - * - * @see https://developers.sinch.com/docs/verification/api-reference/verification/tag/Verification-status - * @since 1.1 - */ -public interface VerificationStatusService { - - /** - * Queries the verification result by sending the verification Identity (usually a phone number) - * and its method. With this query you can get the result of a verification. - * - * @param identity Currently Only {@link - * com.sinch.sdk.domains.verification.models.v1.NumberIdentity} is supported - * @param method Method used for verification - * @return Verification status response - * @since 1.1 - */ - VerificationStatusResponse getByIdentity(NumberIdentity identity, VerificationMethod method); - - /** - * Queries the verification result by sending the verification ID. With this query you can get the - * result of a verification. - * - * @param id The ID of the verification - * @return Verification status response - * @since 1.1 - */ - VerificationStatusResponse getById(String id); - - /** - * Queries the verification result by sending the verification Reference. With this query you can - * get the result of a verification - * - * @param reference The custom reference of the verification - * @return Verification status response - * @since 1.1 - */ - VerificationStatusResponse getByReference(String reference); -} diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/WebHooksService.java b/client/src/main/com/sinch/sdk/domains/verification/api/v1/WebhooksService.java similarity index 98% rename from client/src/main/com/sinch/sdk/domains/verification/api/v1/WebHooksService.java rename to client/src/main/com/sinch/sdk/domains/verification/api/v1/WebhooksService.java index 0fbe0cfc4..1295ce870 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/WebHooksService.java +++ b/client/src/main/com/sinch/sdk/domains/verification/api/v1/WebhooksService.java @@ -11,12 +11,12 @@ *

Callback events are used to authorize and manage your verification requests and return * verification results. * - *

see See https://developers.sinch.com/docs/verification/api-reference/verification/tag/Verification-callbacks/#tag/Verification-callbacks/paths/VerificationRequestEvent/post * * @since 1.1 */ -public interface WebHooksService { +public interface WebhooksService { /** * The Sinch Platform can initiate callback requests to a URL you define (Callback URL) on request diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationReportService.java b/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationReportService.java deleted file mode 100644 index 5f5feb974..000000000 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationReportService.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.sinch.sdk.domains.verification.api.v1.adapters; - -import com.sinch.sdk.core.http.AuthManager; -import com.sinch.sdk.core.http.HttpClient; -import com.sinch.sdk.core.http.HttpMapper; -import com.sinch.sdk.domains.verification.api.v1.internal.VerificationsReportApi; -import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; -import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequest; -import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestFlashCall; -import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestPhoneCall; -import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestSms; -import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestWhatsApp; -import com.sinch.sdk.domains.verification.models.v1.report.request.internal.VerificationReportRequestInternalImpl; -import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponse; -import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseFlashCall; -import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponsePhoneCall; -import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseSms; -import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseWhatsApp; -import com.sinch.sdk.domains.verification.models.v1.report.response.internal.VerificationReportResponseInternalImpl; -import com.sinch.sdk.models.VerificationContext; -import java.util.Map; - -public class VerificationReportService - implements com.sinch.sdk.domains.verification.api.v1.VerificationReportService { - - private final VerificationsReportApi api; - - public VerificationReportService( - VerificationContext context, HttpClient httpClient, Map authManagers) { - this.api = - new VerificationsReportApi( - httpClient, context.getVerificationServer(), authManagers, HttpMapper.getInstance()); - } - - protected VerificationsReportApi getApi() { - return this.api; - } - - @Override - public VerificationReportResponseSms reportSmsByIdentity( - NumberIdentity identity, VerificationReportRequestSms parameters) { - - return (VerificationReportResponseSms) reportByIdentity(identity, parameters); - } - - @Override - public VerificationReportResponseFlashCall reportFlashCallByIdentity( - NumberIdentity identity, VerificationReportRequestFlashCall parameters) { - - return (VerificationReportResponseFlashCall) reportByIdentity(identity, parameters); - } - - @Override - public VerificationReportResponsePhoneCall reportPhoneCallByIdentity( - NumberIdentity identity, VerificationReportRequestPhoneCall parameters) { - - return (VerificationReportResponsePhoneCall) reportByIdentity(identity, parameters); - } - - @Override - public VerificationReportResponseWhatsApp reportWhatsAppByIdentity( - NumberIdentity identity, VerificationReportRequestWhatsApp parameters) { - - return (VerificationReportResponseWhatsApp) reportByIdentity(identity, parameters); - } - - @Override - public VerificationReportResponseSms reportSmsById( - String id, VerificationReportRequestSms parameters) { - - return (VerificationReportResponseSms) reportById(id, parameters); - } - - @Override - public VerificationReportResponseFlashCall reportFlashCallById( - String id, VerificationReportRequestFlashCall parameters) { - - return (VerificationReportResponseFlashCall) reportById(id, parameters); - } - - @Override - public VerificationReportResponsePhoneCall reportPhoneCallById( - String id, VerificationReportRequestPhoneCall parameters) { - - return (VerificationReportResponsePhoneCall) reportById(id, parameters); - } - - @Override - public VerificationReportResponseWhatsApp reportWhatsAppById( - String id, VerificationReportRequestWhatsApp parameters) { - - return (VerificationReportResponseWhatsApp) reportById(id, parameters); - } - - private VerificationReportResponse reportByIdentity( - NumberIdentity identity, VerificationReportRequest parameters) { - VerificationReportRequestInternalImpl internal = new VerificationReportRequestInternalImpl(); - internal.setActualInstance(parameters); - VerificationReportResponseInternalImpl response = - (VerificationReportResponseInternalImpl) - getApi().reportVerificationByIdentity(identity.getEndpoint(), internal); - return (VerificationReportResponse) response.getActualInstance(); - } - - private VerificationReportResponse reportById(String id, VerificationReportRequest parameters) { - VerificationReportRequestInternalImpl internal = new VerificationReportRequestInternalImpl(); - internal.setActualInstance(parameters); - VerificationReportResponseInternalImpl response = - (VerificationReportResponseInternalImpl) getApi().reportVerificationById(id, internal); - return (VerificationReportResponse) response.getActualInstance(); - } -} diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationService.java b/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationService.java index 0de1679c8..f2e40c8c2 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationService.java +++ b/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationService.java @@ -4,8 +4,15 @@ import com.sinch.sdk.auth.adapters.BasicAuthManager; import com.sinch.sdk.core.http.AuthManager; import com.sinch.sdk.core.http.HttpClient; +import com.sinch.sdk.core.http.HttpMapper; import com.sinch.sdk.core.utils.StringUtil; import com.sinch.sdk.domains.verification.adapters.IdentityMapper; +import com.sinch.sdk.domains.verification.api.v1.VerificationsReportService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStartService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStatusService; +import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseMapper; +import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseMapper; +import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseMapper; import com.sinch.sdk.models.ApplicationCredentials; import com.sinch.sdk.models.VerificationContext; import java.util.Map; @@ -28,10 +35,10 @@ public class VerificationService private final VerificationContext context; private final Supplier httpClientSupplier; - private volatile VerificationStartService startService; - private volatile VerificationReportService reportService; - private volatile VerificationStatusService statusService; - private volatile WebHooksService webhooks; + private volatile VerificationsStartService startService; + private volatile VerificationsReportService reportService; + private volatile VerificationsStatusService statusService; + private volatile WebhooksService webhooks; private volatile Map clientAuthManagers; private volatile Map webhooksAuthManagers; @@ -77,37 +84,49 @@ private void createAuthManagers(ApplicationCredentials credentials) { APPLICATION_SECURITY_SCHEME_KEYWORD_VERIFICATION, applicationAuthManager); } - public VerificationStartService verificationStart() { + public VerificationsStartService verificationStart() { if (null == this.startService) { instanceLazyInit(); this.startService = - new VerificationStartService(context, httpClientSupplier.get(), clientAuthManagers); + new VerificationsStartServiceImpl( + httpClientSupplier.get(), + context.getVerificationServer(), + clientAuthManagers, + HttpMapper.getInstance()); } return this.startService; } - public VerificationReportService verificationReport() { + public VerificationsReportService verificationReport() { if (null == this.reportService) { instanceLazyInit(); this.reportService = - new VerificationReportService(context, httpClientSupplier.get(), clientAuthManagers); + new VerificationsReportServiceImpl( + httpClientSupplier.get(), + context.getVerificationServer(), + clientAuthManagers, + HttpMapper.getInstance()); } return this.reportService; } - public VerificationStatusService verificationStatus() { + public VerificationsStatusService verificationStatus() { if (null == this.statusService) { instanceLazyInit(); this.statusService = - new VerificationStatusService(context, httpClientSupplier.get(), clientAuthManagers); + new VerificationsStatusServiceImpl( + httpClientSupplier.get(), + context.getVerificationServer(), + clientAuthManagers, + HttpMapper.getInstance()); } return this.statusService; } - public WebHooksService webhooks() { + public WebhooksService webhooks() { if (null == this.webhooks) { instanceLazyInit(); - this.webhooks = new WebHooksService(webhooksAuthManagers); + this.webhooks = new WebhooksService(webhooksAuthManagers); } return this.webhooks; } @@ -147,6 +166,9 @@ static final class LocalLazyInit { private LocalLazyInit() { IdentityMapper.initMapper(); + VerificationStartResponseMapper.initMapper(); + VerificationStatusResponseMapper.initMapper(); + VerificationReportResponseMapper.initMapper(); } public static LocalLazyInit init() { diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStartService.java b/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStartService.java deleted file mode 100644 index 98e05ca4b..000000000 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStartService.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.sinch.sdk.domains.verification.api.v1.adapters; - -import com.sinch.sdk.core.http.AuthManager; -import com.sinch.sdk.core.http.HttpClient; -import com.sinch.sdk.core.http.HttpMapper; -import com.sinch.sdk.domains.verification.api.v1.internal.VerificationsStartApi; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequest; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestData; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestFlashCall; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestPhoneCall; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestSms; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestWhatsApp; -import com.sinch.sdk.domains.verification.models.v1.start.request.internal.VerificationStartRequestInternalImpl; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponse; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseData; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseFlashCall; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponsePhoneCall; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseSms; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseWhatsApp; -import com.sinch.sdk.domains.verification.models.v1.start.response.internal.VerificationStartResponseInternalImpl; -import com.sinch.sdk.models.VerificationContext; -import java.util.Map; -import java.util.Optional; - -public class VerificationStartService - implements com.sinch.sdk.domains.verification.api.v1.VerificationStartService { - - private final VerificationsStartApi api; - - public VerificationStartService( - VerificationContext context, HttpClient httpClient, Map authManagers) { - this.api = - new VerificationsStartApi( - httpClient, context.getVerificationServer(), authManagers, HttpMapper.getInstance()); - } - - protected VerificationsStartApi getApi() { - return this.api; - } - - @Override - public VerificationStartResponseSms startSms(VerificationStartRequestSms parameters) { - String acceptLanguage = parameters.getAcceptLanguage(); - return (VerificationStartResponseSms) start(parameters, acceptLanguage).orElse(null); - } - - @Override - public VerificationStartResponseFlashCall startFlashCall( - VerificationStartRequestFlashCall parameters) { - return (VerificationStartResponseFlashCall) start(parameters).orElse(null); - } - - @Override - public VerificationStartResponsePhoneCall startPhoneCall( - VerificationStartRequestPhoneCall parameters) { - return (VerificationStartResponsePhoneCall) start(parameters).orElse(null); - } - - @Override - public VerificationStartResponseData startData(VerificationStartRequestData parameters) { - return (VerificationStartResponseData) start(parameters).orElse(null); - } - - @Override - public VerificationStartResponseWhatsApp startWhatsApp( - VerificationStartRequestWhatsApp parameters) { - return (VerificationStartResponseWhatsApp) start(parameters).orElse(null); - } - - private Optional start(VerificationStartRequest parameters) { - return start(parameters, null); - } - - private Optional start( - VerificationStartRequest parameters, String acceptLanguage) { - VerificationStartRequestInternalImpl impl = new VerificationStartRequestInternalImpl(); - impl.setActualInstance(parameters); - VerificationStartResponseInternalImpl response = - (VerificationStartResponseInternalImpl) getApi().startVerification(impl, acceptLanguage); - if (null == response) { - return Optional.empty(); - } - return Optional.ofNullable((VerificationStartResponse) response.getActualInstance()); - } -} diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStatusService.java b/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStatusService.java deleted file mode 100644 index 64121f385..000000000 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStatusService.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.sinch.sdk.domains.verification.api.v1.adapters; - -import com.sinch.sdk.core.http.AuthManager; -import com.sinch.sdk.core.http.HttpClient; -import com.sinch.sdk.core.http.HttpMapper; -import com.sinch.sdk.domains.verification.api.v1.internal.VerificationStatusApi; -import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; -import com.sinch.sdk.domains.verification.models.v1.VerificationMethod; -import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse; -import com.sinch.sdk.domains.verification.models.v1.status.response.internal.VerificationStatusResponseInternalImpl; -import com.sinch.sdk.models.VerificationContext; -import java.util.Map; - -public class VerificationStatusService - implements com.sinch.sdk.domains.verification.api.v1.VerificationStatusService { - - private final VerificationStatusApi api; - - public VerificationStatusService( - VerificationContext context, HttpClient httpClient, Map authManagers) { - this.api = - new VerificationStatusApi( - httpClient, context.getVerificationServer(), authManagers, HttpMapper.getInstance()); - } - - protected VerificationStatusApi getApi() { - return this.api; - } - - @Override - public VerificationStatusResponse getByIdentity( - NumberIdentity identity, VerificationMethod method) { - - VerificationStatusResponseInternalImpl response = - (VerificationStatusResponseInternalImpl) - getApi().verificationStatusByIdentity(identity.getEndpoint(), method.value()); - if (null == response) { - return null; - } - return (VerificationStatusResponse) response.getActualInstance(); - } - - @Override - public VerificationStatusResponse getById(String id) { - - VerificationStatusResponseInternalImpl response = - (VerificationStatusResponseInternalImpl) getApi().verificationStatusById(id); - if (null == response) { - return null; - } - return (VerificationStatusResponse) response.getActualInstance(); - } - - @Override - public VerificationStatusResponse getByReference(String reference) { - - VerificationStatusResponseInternalImpl response = - (VerificationStatusResponseInternalImpl) getApi().verificationStatusByReference(reference); - if (null == response) { - return null; - } - return (VerificationStatusResponse) response.getActualInstance(); - } -} diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/WebHooksService.java b/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/WebhooksService.java similarity index 91% rename from client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/WebHooksService.java rename to client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/WebhooksService.java index 980d5596e..5917a1872 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/WebHooksService.java +++ b/client/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/WebhooksService.java @@ -12,13 +12,13 @@ import java.util.Map; import java.util.logging.Logger; -public class WebHooksService implements com.sinch.sdk.domains.verification.api.v1.WebHooksService { +public class WebhooksService implements com.sinch.sdk.domains.verification.api.v1.WebhooksService { - private static final Logger LOGGER = Logger.getLogger(WebHooksService.class.getName()); + private static final Logger LOGGER = Logger.getLogger(WebhooksService.class.getName()); private final Map authManagers; - public WebHooksService(Map authManagers) { + public WebhooksService(Map authManagers) { this.authManagers = authManagers; } diff --git a/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/request/package-info.java b/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/request/package-info.java index 95ecc0d23..1747fe377 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/request/package-info.java +++ b/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/request/package-info.java @@ -1,7 +1,7 @@ /** * Models related to Verifications Report requests * - * @see com.sinch.sdk.domains.verification.api.v1.VerificationReportService + * @see com.sinch.sdk.domains.verification.api.v1.VerificationsReportService * @since 1.1 */ package com.sinch.sdk.domains.verification.models.v1.report.request; diff --git a/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/response/VerificationReportResponseMapper.java b/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/response/VerificationReportResponseMapper.java new file mode 100644 index 000000000..4c20acc91 --- /dev/null +++ b/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/response/VerificationReportResponseMapper.java @@ -0,0 +1,38 @@ +package com.sinch.sdk.domains.verification.models.v1.report.response; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.sinch.sdk.core.utils.databind.Mapper; +import com.sinch.sdk.domains.verification.models.v1.report.response.internal.VerificationReportResponseInternalImpl; +import java.io.IOException; + +public class VerificationReportResponseMapper { + + public static void initMapper() { + SimpleModule module = + new SimpleModule().addDeserializer(VerificationReportResponse.class, new Deserializer()); + Mapper.getInstance().registerModule(module); + } + + private static class Deserializer extends StdDeserializer { + + public Deserializer() { + this(null); + } + + public Deserializer(Class vc) { + super(vc); + } + + @Override + public VerificationReportResponse deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + + VerificationReportResponseInternalImpl deserialized = + jp.readValueAs(VerificationReportResponseInternalImpl.class); + return (VerificationReportResponse) deserialized.getActualInstance(); + } + } +} diff --git a/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/response/package-info.java b/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/response/package-info.java index b320a6bdd..93167c09c 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/response/package-info.java +++ b/client/src/main/com/sinch/sdk/domains/verification/models/v1/report/response/package-info.java @@ -1,7 +1,7 @@ /** * Models related to Verifications Report responses * - * @see com.sinch.sdk.domains.verification.api.v1.VerificationReportService + * @see com.sinch.sdk.domains.verification.api.v1.VerificationsReportService * @since 1.1 */ package com.sinch.sdk.domains.verification.models.v1.report.response; diff --git a/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/request/package-info.java b/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/request/package-info.java index cb23c9614..6bda06389 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/request/package-info.java +++ b/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/request/package-info.java @@ -1,7 +1,7 @@ /** * Models related to Verifications Start requests * - * @see com.sinch.sdk.domains.verification.api.v1.VerificationStartService + * @see com.sinch.sdk.domains.verification.api.v1.VerificationsStartService * @since 1.1 */ package com.sinch.sdk.domains.verification.models.v1.start.request; diff --git a/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/response/VerificationStartResponseMapper.java b/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/response/VerificationStartResponseMapper.java new file mode 100644 index 000000000..62d094849 --- /dev/null +++ b/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/response/VerificationStartResponseMapper.java @@ -0,0 +1,38 @@ +package com.sinch.sdk.domains.verification.models.v1.start.response; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.sinch.sdk.core.utils.databind.Mapper; +import com.sinch.sdk.domains.verification.models.v1.start.response.internal.VerificationStartResponseInternalImpl; +import java.io.IOException; + +public class VerificationStartResponseMapper { + + public static void initMapper() { + SimpleModule module = + new SimpleModule().addDeserializer(VerificationStartResponse.class, new Deserializer()); + Mapper.getInstance().registerModule(module); + } + + static class Deserializer extends StdDeserializer { + + public Deserializer() { + this(null); + } + + public Deserializer(Class vc) { + super(vc); + } + + @Override + public VerificationStartResponse deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + + VerificationStartResponseInternalImpl deserialized = + jp.readValueAs(VerificationStartResponseInternalImpl.class); + return (VerificationStartResponse) deserialized.getActualInstance(); + } + } +} diff --git a/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/response/package-info.java b/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/response/package-info.java index 7ff0bcdcd..447a85453 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/response/package-info.java +++ b/client/src/main/com/sinch/sdk/domains/verification/models/v1/start/response/package-info.java @@ -1,7 +1,7 @@ /** * Models related to Verifications Start responses * - * @see com.sinch.sdk.domains.verification.api.v1.VerificationStartService + * @see com.sinch.sdk.domains.verification.api.v1.VerificationsStartService * @since 1.1 */ package com.sinch.sdk.domains.verification.models.v1.start.response; diff --git a/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/package-info.java b/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/package-info.java index d78059223..3d1029f5b 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/package-info.java +++ b/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/package-info.java @@ -1,7 +1,7 @@ /** * Models related to Verifications Status * - * @see com.sinch.sdk.domains.verification.api.v1.VerificationStatusService + * @see com.sinch.sdk.domains.verification.api.v1.VerificationsStatusService * @since 1.1 */ package com.sinch.sdk.domains.verification.models.v1.status; diff --git a/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/response/VerificationStatusResponseMapper.java b/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/response/VerificationStatusResponseMapper.java new file mode 100644 index 000000000..78584940e --- /dev/null +++ b/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/response/VerificationStatusResponseMapper.java @@ -0,0 +1,38 @@ +package com.sinch.sdk.domains.verification.models.v1.status.response; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.sinch.sdk.core.utils.databind.Mapper; +import com.sinch.sdk.domains.verification.models.v1.status.response.internal.VerificationStatusResponseInternalImpl; +import java.io.IOException; + +public class VerificationStatusResponseMapper { + + public static void initMapper() { + SimpleModule module = + new SimpleModule().addDeserializer(VerificationStatusResponse.class, new Deserializer()); + Mapper.getInstance().registerModule(module); + } + + static class Deserializer extends StdDeserializer { + + public Deserializer() { + this(null); + } + + public Deserializer(Class vc) { + super(vc); + } + + @Override + public VerificationStatusResponse deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + + VerificationStatusResponseInternalImpl deserialized = + jp.readValueAs(VerificationStatusResponseInternalImpl.class); + return (VerificationStatusResponse) deserialized.getActualInstance(); + } + } +} diff --git a/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/response/package-info.java b/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/response/package-info.java index ad9b886c5..9a96b634b 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/response/package-info.java +++ b/client/src/main/com/sinch/sdk/domains/verification/models/v1/status/response/package-info.java @@ -1,7 +1,7 @@ /** * Models related to Verifications Status responses * - * @see com.sinch.sdk.domains.verification.api.v1.VerificationStatusService + * @see com.sinch.sdk.domains.verification.api.v1.VerificationsStatusService * @since 1.1 */ package com.sinch.sdk.domains.verification.models.v1.status.response; diff --git a/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationReportServiceTest.java b/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationReportServiceTest.java index 9a5c92f07..58242f3bc 100644 --- a/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationReportServiceTest.java +++ b/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationReportServiceTest.java @@ -1,27 +1,35 @@ package com.sinch.sdk.domains.verification.api.v1.adapters; +import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; -import com.adelean.inject.resources.junit.jupiter.GivenJsonResource; +import com.adelean.inject.resources.junit.jupiter.GivenTextResource; import com.adelean.inject.resources.junit.jupiter.TestWithResources; import com.sinch.sdk.core.TestHelpers; import com.sinch.sdk.core.exceptions.ApiException; import com.sinch.sdk.core.http.AuthManager; import com.sinch.sdk.core.http.HttpClient; +import com.sinch.sdk.core.http.HttpContentType; +import com.sinch.sdk.core.http.HttpMapper; +import com.sinch.sdk.core.http.HttpMethod; +import com.sinch.sdk.core.http.HttpRequest; +import com.sinch.sdk.core.http.HttpRequestTest.HttpRequestMatcher; +import com.sinch.sdk.core.http.HttpResponse; +import com.sinch.sdk.core.http.URLPathUtils; +import com.sinch.sdk.core.models.ServerConfiguration; import com.sinch.sdk.domains.verification.adapters.VerificationBaseTest; -import com.sinch.sdk.domains.verification.api.v1.internal.VerificationsReportApi; +import com.sinch.sdk.domains.verification.api.v1.VerificationsReportService; import com.sinch.sdk.domains.verification.models.dto.v1.report.VerificationReportRequestDtoTest; import com.sinch.sdk.domains.verification.models.dto.v1.report.VerificationReportResponseDtoTest; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; -import com.sinch.sdk.domains.verification.models.v1.report.request.internal.VerificationReportRequestInternal; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseFlashCall; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponsePhoneCall; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseSms; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseWhatsApp; -import com.sinch.sdk.models.VerificationContext; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.Map; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -30,177 +38,296 @@ @TestWithResources public class VerificationReportServiceTest extends VerificationBaseTest { - @GivenJsonResource("/domains/verification/v1/report/VerificationReportRequestPhoneCallDto.json") - public VerificationReportRequestInternal verificationReportPhoneCallRequestDto; + @GivenTextResource("/domains/verification/v1/report/VerificationReportRequestPhoneCallDto.json") + public String verificationReportPhoneCallRequestDto; - @GivenJsonResource("/domains/verification/v1/report/VerificationReportRequestFlashCallDto.json") - public VerificationReportRequestInternal verificationReportFlashCallRequestDto; + @GivenTextResource("/domains/verification/v1/report/VerificationReportResponsePhoneCallDto.json") + public String verificationReportPhoneCallResponseDto; - @GivenJsonResource("/domains/verification/v1/report/VerificationReportRequestSmsDto.json") - public VerificationReportRequestInternal verificationReportSmsRequestDto; + @GivenTextResource("/domains/verification/v1/report/VerificationReportRequestFlashCallDto.json") + public String verificationReportFlashCallRequestDto; - @GivenJsonResource("/domains/verification/v1/report/VerificationReportRequestWhatsAppDto.json") - public VerificationReportRequestInternal verificationReportWhatsAppRequestDto; + @GivenTextResource("/domains/verification/v1/report/VerificationReportResponseFlashCallDto.json") + public String verificationReportFlashCallResponseDto; - @Mock VerificationsReportApi api; - @Mock VerificationContext context; + @GivenTextResource("/domains/verification/v1/report/VerificationReportRequestSmsDto.json") + public String verificationReportSmsRequestDto; + + @GivenTextResource("/domains/verification/v1/report/VerificationReportResponseSmsDto.json") + public String verificationReportSmsResponseDto; + + @GivenTextResource("/domains/verification/v1/report/VerificationReportRequestWhatsAppDto.json") + public String verificationReportWhatsAppRequestDto; + + @GivenTextResource("/domains/verification/v1/report/VerificationReportResponseWhatsAppDto.json") + public String verificationReportWhatsAppResponseDto; + + static final Collection AUTH_NAMES = Arrays.asList("Basic", "Application"); + + @Mock ServerConfiguration serverConfiguration; @Mock HttpClient httpClient; @Mock Map authManagers; - - VerificationReportService service; + VerificationsReportService service; @BeforeEach public void initMocks() { - VerificationReportService v1 = new VerificationReportService(context, httpClient, authManagers); - service = spy(v1); - doReturn(api).when(service).getApi(); + service = + new VerificationsReportServiceImpl( + httpClient, serverConfiguration, authManagers, HttpMapper.getInstance()); } @Test void reportSmsByIdentity() throws ApiException { - when(api.reportVerificationByIdentity( - eq("endpoint string"), eq(verificationReportSmsRequestDto))) - .thenReturn(VerificationReportResponseDtoTest.verificationReportSmsDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/number/" + + URLPathUtils.encodePathSegment("endpoint string"), + HttpMethod.PUT, + Collections.emptyList(), + verificationReportSmsRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationReportSmsResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationReportResponseSms response = service.reportSmsByIdentity( NumberIdentity.builder().setEndpoint("endpoint string").build(), - VerificationReportRequestDtoTest.verificationReportSmsDto - .getVerificationReportRequestSmsImpl()); + VerificationReportRequestDtoTest.verificationReportSmsDto); TestHelpers.recursiveEquals( - response, - VerificationReportResponseDtoTest.verificationReportSmsDto - .getVerificationReportResponseSmsImpl()); + response, VerificationReportResponseDtoTest.verificationReportSmsDto); } @Test void reportFlashCallByIdentity() throws ApiException { - when(api.reportVerificationByIdentity( - eq("endpoint string"), eq(verificationReportFlashCallRequestDto))) - .thenReturn(VerificationReportResponseDtoTest.verificationReportFlashCallDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/number/" + + URLPathUtils.encodePathSegment("endpoint string"), + HttpMethod.PUT, + Collections.emptyList(), + verificationReportFlashCallRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationReportFlashCallResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationReportResponseFlashCall response = service.reportFlashCallByIdentity( NumberIdentity.builder().setEndpoint("endpoint string").build(), - VerificationReportRequestDtoTest.verificationReportFlashCallDto - .getVerificationReportRequestFlashCallImpl()); + VerificationReportRequestDtoTest.verificationReportFlashCallDto); TestHelpers.recursiveEquals( - response, - VerificationReportResponseDtoTest.verificationReportFlashCallDto - .getVerificationReportResponseFlashCallImpl()); + response, VerificationReportResponseDtoTest.verificationReportFlashCallDto); } @Test void reportPhoneCallByIdentity() throws ApiException { - when(api.reportVerificationByIdentity( - eq("endpoint string"), eq(verificationReportPhoneCallRequestDto))) - .thenReturn(VerificationReportResponseDtoTest.verificationReportPhoneCallDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/number/" + + URLPathUtils.encodePathSegment("endpoint string"), + HttpMethod.PUT, + Collections.emptyList(), + verificationReportPhoneCallRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationReportPhoneCallResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationReportResponsePhoneCall response = service.reportPhoneCallByIdentity( NumberIdentity.builder().setEndpoint("endpoint string").build(), - VerificationReportRequestDtoTest.verificationReportPhoneCallDto - .getVerificationReportRequestPhoneCallImpl()); + VerificationReportRequestDtoTest.verificationReportPhoneCallDto); TestHelpers.recursiveEquals( - response, - VerificationReportResponseDtoTest.verificationReportPhoneCallDto - .getVerificationReportResponsePhoneCallImpl()); + response, VerificationReportResponseDtoTest.verificationReportPhoneCallDto); } @Test void reportWhatsAppByIdentity() throws ApiException { - when(api.reportVerificationByIdentity( - eq("endpoint string"), eq(verificationReportWhatsAppRequestDto))) - .thenReturn(VerificationReportResponseDtoTest.verificationReportWhatsAppDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/number/" + + URLPathUtils.encodePathSegment("endpoint string"), + HttpMethod.PUT, + Collections.emptyList(), + verificationReportWhatsAppRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationReportWhatsAppResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationReportResponseWhatsApp response = service.reportWhatsAppByIdentity( NumberIdentity.builder().setEndpoint("endpoint string").build(), - VerificationReportRequestDtoTest.verificationReportWhatsAppDto - .getVerificationReportRequestWhatsAppImpl()); + VerificationReportRequestDtoTest.verificationReportWhatsAppDto); TestHelpers.recursiveEquals( - response, - VerificationReportResponseDtoTest.verificationReportWhatsAppDto - .getVerificationReportResponseWhatsAppImpl()); + response, VerificationReportResponseDtoTest.verificationReportWhatsAppDto); } @Test void reportSmsById() throws ApiException { - when(api.reportVerificationById(eq("the id"), eq(verificationReportSmsRequestDto))) - .thenReturn(VerificationReportResponseDtoTest.verificationReportSmsDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/id/" + URLPathUtils.encodePathSegment("the id"), + HttpMethod.PUT, + Collections.emptyList(), + verificationReportSmsRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationReportSmsResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationReportResponseSms response = - service.reportSmsById( - "the id", - VerificationReportRequestDtoTest.verificationReportSmsDto - .getVerificationReportRequestSmsImpl()); + service.reportSmsById("the id", VerificationReportRequestDtoTest.verificationReportSmsDto); TestHelpers.recursiveEquals( - response, - VerificationReportResponseDtoTest.verificationReportSmsDto - .getVerificationReportResponseSmsImpl()); + response, VerificationReportResponseDtoTest.verificationReportSmsDto); } @Test void reportFlashCallById() throws ApiException { - when(api.reportVerificationById(eq("the id"), eq(verificationReportFlashCallRequestDto))) - .thenReturn(VerificationReportResponseDtoTest.verificationReportFlashCallDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/id/" + URLPathUtils.encodePathSegment("the id"), + HttpMethod.PUT, + Collections.emptyList(), + verificationReportFlashCallRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationReportFlashCallResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationReportResponseFlashCall response = service.reportFlashCallById( - "the id", - VerificationReportRequestDtoTest.verificationReportFlashCallDto - .getVerificationReportRequestFlashCallImpl()); + "the id", VerificationReportRequestDtoTest.verificationReportFlashCallDto); TestHelpers.recursiveEquals( - response, - VerificationReportResponseDtoTest.verificationReportFlashCallDto - .getVerificationReportResponseFlashCallImpl()); + response, VerificationReportResponseDtoTest.verificationReportFlashCallDto); } @Test void reportPhoneCallById() throws ApiException { - when(api.reportVerificationById(eq("the id"), eq(verificationReportPhoneCallRequestDto))) - .thenReturn(VerificationReportResponseDtoTest.verificationReportPhoneCallDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/id/" + URLPathUtils.encodePathSegment("the id"), + HttpMethod.PUT, + Collections.emptyList(), + verificationReportPhoneCallRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationReportPhoneCallResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationReportResponsePhoneCall response = service.reportPhoneCallById( - "the id", - VerificationReportRequestDtoTest.verificationReportPhoneCallDto - .getVerificationReportRequestPhoneCallImpl()); + "the id", VerificationReportRequestDtoTest.verificationReportPhoneCallDto); TestHelpers.recursiveEquals( - response, - VerificationReportResponseDtoTest.verificationReportPhoneCallDto - .getVerificationReportResponsePhoneCallImpl()); + response, VerificationReportResponseDtoTest.verificationReportPhoneCallDto); } @Test void reportWhatsAppById() throws ApiException { - when(api.reportVerificationById(eq("the id"), eq(verificationReportWhatsAppRequestDto))) - .thenReturn(VerificationReportResponseDtoTest.verificationReportWhatsAppDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/id/" + URLPathUtils.encodePathSegment("the id"), + HttpMethod.PUT, + Collections.emptyList(), + verificationReportWhatsAppRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationReportWhatsAppResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationReportResponseWhatsApp response = service.reportWhatsAppById( - "the id", - VerificationReportRequestDtoTest.verificationReportWhatsAppDto - .getVerificationReportRequestWhatsAppImpl()); + "the id", VerificationReportRequestDtoTest.verificationReportWhatsAppDto); TestHelpers.recursiveEquals( - response, - VerificationReportResponseDtoTest.verificationReportWhatsAppDto - .getVerificationReportResponseWhatsAppImpl()); + response, VerificationReportResponseDtoTest.verificationReportWhatsAppDto); } } diff --git a/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStartServiceTest.java b/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStartServiceTest.java index d3f71ce1b..2d173256d 100644 --- a/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStartServiceTest.java +++ b/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStartServiceTest.java @@ -2,32 +2,33 @@ import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; -import com.adelean.inject.resources.junit.jupiter.GivenJsonResource; +import com.adelean.inject.resources.junit.jupiter.GivenTextResource; import com.adelean.inject.resources.junit.jupiter.TestWithResources; import com.sinch.sdk.core.TestHelpers; import com.sinch.sdk.core.exceptions.ApiException; import com.sinch.sdk.core.http.AuthManager; import com.sinch.sdk.core.http.HttpClient; -import com.sinch.sdk.core.models.ModelArgMatcher; +import com.sinch.sdk.core.http.HttpContentType; +import com.sinch.sdk.core.http.HttpMapper; +import com.sinch.sdk.core.http.HttpMethod; +import com.sinch.sdk.core.http.HttpRequest; +import com.sinch.sdk.core.http.HttpRequestTest.HttpRequestMatcher; +import com.sinch.sdk.core.http.HttpResponse; +import com.sinch.sdk.core.models.ServerConfiguration; import com.sinch.sdk.domains.verification.adapters.VerificationBaseTest; -import com.sinch.sdk.domains.verification.api.v1.internal.VerificationsStartApi; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStartService; import com.sinch.sdk.domains.verification.models.dto.v1.start.request.VerificationStartRequestTest; import com.sinch.sdk.domains.verification.models.dto.v1.start.response.VerificationStartResponseTest; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequest; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestSms; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestSmsImpl; -import com.sinch.sdk.domains.verification.models.v1.start.request.internal.VerificationStartRequestInternal; -import com.sinch.sdk.domains.verification.models.v1.start.request.internal.VerificationStartRequestInternalImpl; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseData; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseFlashCall; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponsePhoneCall; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseSms; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseWhatsApp; -import com.sinch.sdk.models.VerificationContext; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.Map; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -36,149 +37,232 @@ @TestWithResources public class VerificationStartServiceTest extends VerificationBaseTest { - @GivenJsonResource( + @GivenTextResource( "/domains/verification/v1/start/request/VerificationStartRequestPhoneCallDto.json") - public VerificationStartRequestInternal startVerificationPhoneCallRequestDto; + String startVerificationPhoneCallRequestDto; - @GivenJsonResource( + @GivenTextResource( + "/domains/verification/v1/start/response/VerificationStartResponsePhoneCallDto.json") + String startVerificationStartResponsePhoneCallDto; + + @GivenTextResource( "/domains/verification/v1/start/request/VerificationStartRequestFlashCallDto.json") - public VerificationStartRequestInternal startVerificationFlashCallRequestDto; + String startVerificationFlashCallRequestDto; + + @GivenTextResource( + "/domains/verification/v1/start/response/VerificationStartResponseFlashCallDto.json") + String startVerificationFlashCallResponseDto; + + @GivenTextResource("/domains/verification/v1/start/request/VerificationStartRequestDataDto.json") + String startVerificationDataRequestDto; + + @GivenTextResource( + "/domains/verification/v1/start/response/VerificationStartResponseDataDto.json") + String startVerificationDataResponseDto; - @GivenJsonResource("/domains/verification/v1/start/request/VerificationStartRequestDataDto.json") - public VerificationStartRequestInternal startVerificationDataRequestDto; + @GivenTextResource("/domains/verification/v1/start/request/VerificationStartRequestSmsDto.json") + String startVerificationSmsRequestDto; - @GivenJsonResource("/domains/verification/v1/start/request/VerificationStartRequestSmsDto.json") - public VerificationStartRequestInternal startVerificationSmsRequestDto; + @GivenTextResource("/domains/verification/v1/start/response/VerificationStartResponseSmsDto.json") + String startVerificationSmsResponseDto; - @GivenJsonResource( + @GivenTextResource( "/domains/verification/v1/start/request/VerificationStartRequestWhatsAppDto.json") - public VerificationStartRequestInternal startVerificationWhatsAppRequestDto; + public String startVerificationWhatsAppRequestDto; - @Mock VerificationsStartApi api; - @Mock VerificationContext context; + @GivenTextResource( + "/domains/verification/v1/start/response/VerificationStartResponseWhatsAppDto.json") + public String startVerificationWhatsAppResponseDto; + + static final Collection AUTH_NAMES = Arrays.asList("Basic", "Application"); + + @Mock ServerConfiguration serverConfiguration; @Mock HttpClient httpClient; @Mock Map authManagers; - - VerificationStartService service; + VerificationsStartService service; @BeforeEach public void initMocks() { - VerificationStartService v1 = new VerificationStartService(context, httpClient, authManagers); - service = spy(v1); - doReturn(api).when(service).getApi(); + service = + new VerificationsStartServiceImpl( + httpClient, serverConfiguration, authManagers, HttpMapper.getInstance()); } @Test void startSms() throws ApiException { - when(api.startVerification( - argThat(new ModelArgMatcher<>(startVerificationSmsRequestDto)), eq(null))) - .thenReturn(VerificationStartResponseTest.expectedStartVerificationSmsDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications", + HttpMethod.POST, + Collections.emptyList(), + startVerificationSmsRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), startVerificationSmsResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationStartResponseSms response = - service.startSms( - VerificationStartRequestTest.startVerificationSmsDto - .getVerificationStartRequestSmsImpl()); + service.startSms(VerificationStartRequestTest.startVerificationSmsDto); TestHelpers.recursiveEquals( - response, - VerificationStartResponseTest.expectedStartVerificationSmsDto.getActualInstance()); + response, VerificationStartResponseTest.expectedStartVerificationSmsDto); } @Test void startSmsWithAcceptLanguage() throws ApiException { - VerificationStartRequestSmsImpl startVerificationSmsRequestDtoImpl = - ((VerificationStartRequestInternalImpl) startVerificationSmsRequestDto) - .getVerificationStartRequestSmsImpl(); - VerificationStartRequest withAcceptLanguage = - VerificationStartRequestSms.builder() - .setIdentity(startVerificationSmsRequestDtoImpl.getIdentity()) - .setReference(startVerificationSmsRequestDtoImpl.getReference()) - .setCustom(startVerificationSmsRequestDtoImpl.getCustom()) - .setExpiry(startVerificationSmsRequestDtoImpl.getExpiry()) - .setCodeType(startVerificationSmsRequestDtoImpl.getCodeType()) - .setAcceptLanguage("es-ES") - .putExtraOption("my key", startVerificationSmsRequestDtoImpl.getExtraOption("my key")) - .build(); - VerificationStartRequestInternalImpl internalWithAcceptLanguage = - new VerificationStartRequestInternalImpl(); - internalWithAcceptLanguage.setActualInstance(withAcceptLanguage); - - when(api.startVerification( - argThat(new ModelArgMatcher<>(internalWithAcceptLanguage)), eq("es-ES"))) - .thenReturn(VerificationStartResponseTest.expectedStartVerificationSmsDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications", + HttpMethod.POST, + Collections.emptyList(), + startVerificationSmsRequestDto, + Collections.singletonMap("Accept-Language", "es-ES"), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), startVerificationSmsResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationStartResponseSms response = - service.startSms( - VerificationStartRequestTest.startVerificationSmsDtoWithAcceptLanguage - .getVerificationStartRequestSmsImpl()); + service.startSms(VerificationStartRequestTest.startVerificationSmsDtoWithAcceptLanguage); TestHelpers.recursiveEquals( - response, - VerificationStartResponseTest.expectedStartVerificationSmsDto - .getVerificationStartResponseSmsImpl()); + response, VerificationStartResponseTest.expectedStartVerificationSmsDto); } @Test void startFlashCall() throws ApiException { - when(api.startVerification( - argThat(new ModelArgMatcher<>(startVerificationFlashCallRequestDto)), eq(null))) - .thenReturn(VerificationStartResponseTest.expectedStartVerificationFlashCallDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications", + HttpMethod.POST, + Collections.emptyList(), + startVerificationFlashCallRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), startVerificationFlashCallResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationStartResponseFlashCall response = - service.startFlashCall( - VerificationStartRequestTest.startVerificationFlashCallDto - .getVerificationStartRequestFlashCallImpl()); + service.startFlashCall(VerificationStartRequestTest.startVerificationFlashCallDto); TestHelpers.recursiveEquals( - response, - VerificationStartResponseTest.expectedStartVerificationFlashCallDto - .getVerificationStartResponseFlashCallImpl()); + response, VerificationStartResponseTest.expectedStartVerificationFlashCallDto); } @Test void startPhoneCall() throws ApiException { - when(api.startVerification( - argThat(new ModelArgMatcher<>(startVerificationPhoneCallRequestDto)), eq(null))) - .thenReturn(VerificationStartResponseTest.expectedStartVerificationPhoneCallDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications", + HttpMethod.POST, + Collections.emptyList(), + startVerificationPhoneCallRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, + null, + Collections.emptyMap(), + startVerificationStartResponsePhoneCallDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationStartResponsePhoneCall response = - service.startPhoneCall( - VerificationStartRequestTest.startVerificationPhoneCallDto - .getVerificationStartRequestPhoneCallImpl()); + service.startPhoneCall(VerificationStartRequestTest.startVerificationPhoneCallDto); TestHelpers.recursiveEquals( - response, - VerificationStartResponseTest.expectedStartVerificationPhoneCallDto - .getVerificationStartResponsePhoneCallImpl()); + response, VerificationStartResponseTest.expectedStartVerificationPhoneCallDto); } @Test void startData() throws ApiException { - when(api.startVerification(eq(startVerificationDataRequestDto), eq(null))) - .thenReturn(VerificationStartResponseTest.expectedStartVerificationDataDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications", + HttpMethod.POST, + Collections.emptyList(), + startVerificationDataRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), startVerificationDataResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationStartResponseData response = - service.startData( - VerificationStartRequestTest.startVerificationDataDto - .getVerificationStartRequestDataImpl()); + service.startData(VerificationStartRequestTest.startVerificationDataDto); TestHelpers.recursiveEquals( - response, - VerificationStartResponseTest.expectedStartVerificationDataDto - .getVerificationStartResponseDataImpl()); + response, VerificationStartResponseTest.expectedStartVerificationDataDto); } @Test void startWhatsApp() throws ApiException { - when(api.startVerification( - argThat(new ModelArgMatcher<>(startVerificationWhatsAppRequestDto)), eq(null))) - .thenReturn(VerificationStartResponseTest.expectedStartVerificationWhatsAppDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications", + HttpMethod.POST, + Collections.emptyList(), + startVerificationWhatsAppRequestDto, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), startVerificationWhatsAppResponseDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationStartResponseWhatsApp response = service.startWhatsApp( @@ -186,7 +270,6 @@ void startWhatsApp() throws ApiException { .getVerificationStartRequestWhatsAppImpl()); TestHelpers.recursiveEquals( - response, - VerificationStartResponseTest.expectedStartVerificationWhatsAppDto.getActualInstance()); + response, VerificationStartResponseTest.expectedStartVerificationWhatsAppDto); } } diff --git a/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStatusServiceTest.java b/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStatusServiceTest.java index 2fff0e080..a36c5987a 100644 --- a/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStatusServiceTest.java +++ b/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationStatusServiceTest.java @@ -1,22 +1,32 @@ package com.sinch.sdk.domains.verification.api.v1.adapters; +import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; +import com.adelean.inject.resources.junit.jupiter.GivenTextResource; import com.adelean.inject.resources.junit.jupiter.TestWithResources; import com.sinch.sdk.core.TestHelpers; import com.sinch.sdk.core.exceptions.ApiException; import com.sinch.sdk.core.http.AuthManager; import com.sinch.sdk.core.http.HttpClient; +import com.sinch.sdk.core.http.HttpContentType; +import com.sinch.sdk.core.http.HttpMapper; +import com.sinch.sdk.core.http.HttpMethod; +import com.sinch.sdk.core.http.HttpRequest; +import com.sinch.sdk.core.http.HttpRequestTest.HttpRequestMatcher; +import com.sinch.sdk.core.http.HttpResponse; +import com.sinch.sdk.core.http.URLPathUtils; +import com.sinch.sdk.core.models.ServerConfiguration; import com.sinch.sdk.domains.verification.adapters.VerificationBaseTest; -import com.sinch.sdk.domains.verification.api.v1.internal.VerificationStatusApi; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStatusService; import com.sinch.sdk.domains.verification.models.dto.v1.status.VerificationStatusResponseTest; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; import com.sinch.sdk.domains.verification.models.v1.VerificationMethod; import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse; -import com.sinch.sdk.models.VerificationContext; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.Map; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -25,24 +35,54 @@ @TestWithResources public class VerificationStatusServiceTest extends VerificationBaseTest { - @Mock VerificationStatusApi api; - @Mock VerificationContext context; + @GivenTextResource("/domains/verification/v1/status/VerificationStatusResponseSmsDto.json") + String verificationStatusResponseSmsDto; + + @GivenTextResource("/domains/verification/v1/status/VerificationStatusResponsePhoneCallDto.json") + String verificationStatusResponsePhoneCallDto; + + @GivenTextResource("/domains/verification/v1/status/VerificationStatusResponseFlashCallDto.json") + String verificationStatusResponseFlashCallDto; + + static final Collection AUTH_NAMES = Arrays.asList("Basic", "Application"); + + @Mock ServerConfiguration serverConfiguration; @Mock HttpClient httpClient; @Mock Map authManagers; - - VerificationStatusService service; + VerificationsStatusService service; @BeforeEach public void initMocks() { - service = spy(new VerificationStatusService(context, httpClient, authManagers)); - doReturn(api).when(service).getApi(); + service = + new VerificationsStatusServiceImpl( + httpClient, serverConfiguration, authManagers, HttpMapper.getInstance()); } @Test void getByIdentity() throws ApiException { - when(api.verificationStatusByIdentity(eq("endpoint string"), eq("sms"))) - .thenReturn(VerificationStatusResponseTest.expectedVerificationSmsDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/" + + URLPathUtils.encodePathSegment(VerificationMethod.SMS.toString()) + + "/number/" + + URLPathUtils.encodePathSegment("endpoint string"), + HttpMethod.GET, + Collections.emptyList(), + (String) null, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.emptyList(), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationStatusResponseSmsDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationStatusResponse response = service.getByIdentity( @@ -50,36 +90,65 @@ void getByIdentity() throws ApiException { VerificationMethod.SMS); TestHelpers.recursiveEquals( - response, - VerificationStatusResponseTest.expectedVerificationSmsDto - .getVerificationStatusResponseSmsImpl()); + response, VerificationStatusResponseTest.expectedVerificationSmsDto); } @Test void getById() throws ApiException { - when(api.verificationStatusById(eq("the id"))) - .thenReturn(VerificationStatusResponseTest.expectedVerificationPhoneCallDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/id/" + URLPathUtils.encodePathSegment("the id"), + HttpMethod.GET, + Collections.emptyList(), + (String) null, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.emptyList(), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationStatusResponsePhoneCallDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationStatusResponse response = service.getById("the id"); TestHelpers.recursiveEquals( - response, - VerificationStatusResponseTest.expectedVerificationPhoneCallDto - .getVerificationStatusResponsePhoneCallImpl()); + response, VerificationStatusResponseTest.expectedVerificationPhoneCallDto); } @Test void getByReference() throws ApiException { - when(api.verificationStatusByReference(eq("the reference"))) - .thenReturn(VerificationStatusResponseTest.expectedVerificationFlashCallDto); + HttpRequest httpRequest = + new HttpRequest( + "/verification/v1/verifications/reference/" + + URLPathUtils.encodePathSegment("the reference"), + HttpMethod.GET, + Collections.emptyList(), + (String) null, + Collections.emptyMap(), + Collections.singletonList(HttpContentType.APPLICATION_JSON), + Collections.emptyList(), + AUTH_NAMES); + HttpResponse httpResponse = + new HttpResponse( + 200, null, Collections.emptyMap(), verificationStatusResponseFlashCallDto.getBytes()); + + when(httpClient.invokeAPI( + eq(serverConfiguration), + eq(authManagers), + argThat(new HttpRequestMatcher(httpRequest)))) + .thenReturn(httpResponse); VerificationStatusResponse response = service.getByReference("the reference"); TestHelpers.recursiveEquals( - response, - VerificationStatusResponseTest.expectedVerificationFlashCallDto - .getVerificationStatusResponseFlashCallImpl()); + response, VerificationStatusResponseTest.expectedVerificationFlashCallDto); } } diff --git a/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/WebhooksServiceTest.java b/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/WebhooksServiceTest.java index c8d585939..b61d9011b 100644 --- a/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/WebhooksServiceTest.java +++ b/client/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/WebhooksServiceTest.java @@ -5,7 +5,7 @@ import com.sinch.sdk.core.TestHelpers; import com.sinch.sdk.core.exceptions.ApiException; import com.sinch.sdk.domains.verification.adapters.VerificationBaseTest; -import com.sinch.sdk.domains.verification.api.v1.WebHooksService; +import com.sinch.sdk.domains.verification.api.v1.WebhooksService; import com.sinch.sdk.domains.verification.models.dto.v1.webhooks.VerificationRequestEventDtoTest; import com.sinch.sdk.domains.verification.models.dto.v1.webhooks.VerificationResponseEventDtoTest; import com.sinch.sdk.domains.verification.models.dto.v1.webhooks.VerificationResultEventDtoTest; @@ -46,7 +46,7 @@ public class WebhooksServiceTest extends VerificationBaseTest { @GivenTextResource("/domains/verification/v1/webhooks/VerificationResponseWhatsApp.json") String jsonResponseWhatsApp; - WebHooksService webHooksService; + WebhooksService webHooksService; @Test void checkApplicationAuthentication() throws ApiException { diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/ReportSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/ReportSteps.java index dfde1a726..b8889dff5 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/ReportSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/ReportSteps.java @@ -1,7 +1,7 @@ package com.sinch.sdk.e2e.domains.verification.v1; import com.sinch.sdk.core.TestHelpers; -import com.sinch.sdk.domains.verification.api.v1.VerificationReportService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsReportService; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; import com.sinch.sdk.domains.verification.models.v1.VerificationStatus; import com.sinch.sdk.domains.verification.models.v1.VerificationStatusReason; @@ -21,7 +21,7 @@ public class ReportSteps { - VerificationReportService service; + VerificationsReportService service; VerificationReportResponse reportSmsByIdResponse; VerificationReportResponse reportSmsByIdentityResponse; VerificationReportResponse reportCalloutByIdResponse; diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/StartSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/StartSteps.java index bc6c3414c..e4ed32003 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/StartSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/StartSteps.java @@ -2,7 +2,7 @@ import com.sinch.sdk.core.TestHelpers; import com.sinch.sdk.core.exceptions.ApiException; -import com.sinch.sdk.domains.verification.api.v1.VerificationStartService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStartService; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; import com.sinch.sdk.domains.verification.models.v1.SmsCodeType; import com.sinch.sdk.domains.verification.models.v1.WhatsAppCodeType; @@ -29,7 +29,7 @@ public class StartSteps { - VerificationStartService service; + VerificationsStartService service; VerificationStartResponse startVerificationBySmsResponse; VerificationStartResponse startVerificationByPhoneCallResponse; VerificationStartResponse startVerificationByFlashCallResponse; diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/StatusSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/StatusSteps.java index 555af42f3..8a780bdef 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/StatusSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/StatusSteps.java @@ -1,7 +1,7 @@ package com.sinch.sdk.e2e.domains.verification.v1; import com.sinch.sdk.core.TestHelpers; -import com.sinch.sdk.domains.verification.api.v1.VerificationStatusService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStatusService; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; import com.sinch.sdk.domains.verification.models.v1.Price; import com.sinch.sdk.domains.verification.models.v1.VerificationMethod; @@ -21,7 +21,7 @@ public class StatusSteps { - VerificationStatusService service; + VerificationsStatusService service; VerificationStatusResponse statusByIdResponse; VerificationStatusResponse statusByIdentityResponse; VerificationStatusResponse statusByReferenceResponse; diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/WebhooksEventsSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/WebhooksEventsSteps.java index 69f984eaf..09d9e7a3d 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/WebhooksEventsSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/WebhooksEventsSteps.java @@ -1,7 +1,7 @@ package com.sinch.sdk.e2e.domains.verification.v1; import com.sinch.sdk.core.TestHelpers; -import com.sinch.sdk.domains.verification.api.v1.WebHooksService; +import com.sinch.sdk.domains.verification.api.v1.WebhooksService; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; import com.sinch.sdk.domains.verification.models.v1.Price; import com.sinch.sdk.domains.verification.models.v1.VerificationMethod; @@ -29,7 +29,7 @@ public class WebhooksEventsSteps { static final String WEBHOOKS_PATH = Config.VERIFICATION_HOST_NAME + "/webhooks/verification/"; - WebHooksService service; + WebhooksService service; static VerificationEvent expectedVerificationRequestEvent = VerificationRequestEvent.builder() diff --git a/examples/getting-started/verification/user-verification-using-sms-pin/src/main/java/verification/VerificationsSample.java b/examples/getting-started/verification/user-verification-using-sms-pin/src/main/java/verification/VerificationsSample.java index 53cff4e73..ebc206892 100644 --- a/examples/getting-started/verification/user-verification-using-sms-pin/src/main/java/verification/VerificationsSample.java +++ b/examples/getting-started/verification/user-verification-using-sms-pin/src/main/java/verification/VerificationsSample.java @@ -45,7 +45,7 @@ public void start() { * @return Verification ID */ private String startSmsVerification( - VerificationStartService service, E164PhoneNumber phoneNumber) { + VerificationsStartService service, E164PhoneNumber phoneNumber) { echo("Sending verification request onto '%s'", phoneNumber.stringValue()); @@ -62,11 +62,11 @@ private String startSmsVerification( /** * Will use Sinch product to retrieve verification report by ID * - * @param service Verification service + * @param service Verification Report service * @param code Code received by SMS * @param id Verification ID related to the verification */ - private void reportSmsVerification(VerificationReportService service, Integer code, String id) { + private void reportSmsVerification(VerificationsReportService service, Integer code, String id) { VerificationReportRequestSms parameters = VerificationReportRequestSms.builder().setCode(String.valueOf(code)).build(); diff --git a/examples/snippets/src/main/java/verification/report/ReportById.java b/examples/snippets/src/main/java/verification/report/ReportById.java index 3c39277b4..2457dc384 100644 --- a/examples/snippets/src/main/java/verification/report/ReportById.java +++ b/examples/snippets/src/main/java/verification/report/ReportById.java @@ -8,7 +8,7 @@ package verification.report; import com.sinch.sdk.SinchClient; -import com.sinch.sdk.domains.verification.api.v1.VerificationReportService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsReportService; import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestSms; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponse; import com.sinch.sdk.models.Configuration; @@ -37,7 +37,7 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - VerificationReportService verificationReportService = + VerificationsReportService verificationsReportService = client.verification().v1().verificationReport(); LOGGER.info( @@ -47,7 +47,7 @@ public static void main(String[] args) { VerificationReportRequestSms.builder().setCode(receivedVerificationCode).build(); VerificationReportResponse response = - verificationReportService.reportSmsById(verificationId, request); + verificationsReportService.reportSmsById(verificationId, request); LOGGER.info("Response: " + response); } diff --git a/examples/snippets/src/main/java/verification/report/ReportByIdentity.java b/examples/snippets/src/main/java/verification/report/ReportByIdentity.java index 23d43e7cd..e095591de 100644 --- a/examples/snippets/src/main/java/verification/report/ReportByIdentity.java +++ b/examples/snippets/src/main/java/verification/report/ReportByIdentity.java @@ -8,7 +8,7 @@ package verification.report; import com.sinch.sdk.SinchClient; -import com.sinch.sdk.domains.verification.api.v1.VerificationReportService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsReportService; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestSms; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponse; @@ -38,7 +38,7 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - VerificationReportService verificationReportService = + VerificationsReportService verificationsReportService = client.verification().v1().verificationReport(); LOGGER.info(String.format("Report SMS verification code for phone number '%s'", phoneNumber)); @@ -47,7 +47,8 @@ public static void main(String[] args) { VerificationReportRequestSms.builder().setCode(receivedVerificationCode).build(); VerificationReportResponse response = - verificationReportService.reportSmsByIdentity(NumberIdentity.valueOf(phoneNumber), request); + verificationsReportService.reportSmsByIdentity( + NumberIdentity.valueOf(phoneNumber), request); LOGGER.info("Response: " + response); } diff --git a/examples/snippets/src/main/java/verification/start/Start.java b/examples/snippets/src/main/java/verification/start/Start.java index 030bfee60..d4def2da5 100644 --- a/examples/snippets/src/main/java/verification/start/Start.java +++ b/examples/snippets/src/main/java/verification/start/Start.java @@ -8,7 +8,7 @@ package verification.start; import com.sinch.sdk.SinchClient; -import com.sinch.sdk.domains.verification.api.v1.VerificationStartService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStartService; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestSms; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponse; @@ -36,7 +36,7 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - VerificationStartService verificationStartService = + VerificationsStartService verificationsStartService = client.verification().v1().verificationStart(); LOGGER.info(String.format("Start a verification by SMS onto phone number '%s'", phoneNumber)); @@ -46,7 +46,7 @@ public static void main(String[] args) { .setIdentity(NumberIdentity.valueOf(phoneNumber)) .build(); - VerificationStartResponse response = verificationStartService.startSms(request); + VerificationStartResponse response = verificationsStartService.startSms(request); LOGGER.info("Response: " + response); } diff --git a/examples/snippets/src/main/java/verification/status/GetById.java b/examples/snippets/src/main/java/verification/status/GetById.java index 4bfd79c6d..c8ef3e133 100644 --- a/examples/snippets/src/main/java/verification/status/GetById.java +++ b/examples/snippets/src/main/java/verification/status/GetById.java @@ -8,7 +8,7 @@ package verification.status; import com.sinch.sdk.SinchClient; -import com.sinch.sdk.domains.verification.api.v1.VerificationStatusService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStatusService; import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse; import com.sinch.sdk.models.Configuration; import java.util.logging.Logger; @@ -34,12 +34,12 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - VerificationStatusService verificationStatusService = + VerificationsStatusService verificationsStatusService = client.verification().v1().verificationStatus(); LOGGER.info(String.format("Verification status for verification ID '%s'", verificationId)); - VerificationStatusResponse response = verificationStatusService.getById(verificationId); + VerificationStatusResponse response = verificationsStatusService.getById(verificationId); LOGGER.info("Response: " + response); } diff --git a/examples/snippets/src/main/java/verification/status/GetByIdentity.java b/examples/snippets/src/main/java/verification/status/GetByIdentity.java index 921ecf393..a6ac13b69 100644 --- a/examples/snippets/src/main/java/verification/status/GetByIdentity.java +++ b/examples/snippets/src/main/java/verification/status/GetByIdentity.java @@ -8,7 +8,7 @@ package verification.status; import com.sinch.sdk.SinchClient; -import com.sinch.sdk.domains.verification.api.v1.VerificationStatusService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStatusService; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; import com.sinch.sdk.domains.verification.models.v1.VerificationMethod; import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse; @@ -39,7 +39,7 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - VerificationStatusService verificationStatusService = + VerificationsStatusService verificationsStatusService = client.verification().v1().verificationStatus(); LOGGER.info(String.format("Verification status for phone number '%s'", phoneNumber)); @@ -47,7 +47,7 @@ public static void main(String[] args) { NumberIdentity identity = NumberIdentity.valueOf(phoneNumber); VerificationStatusResponse response = - verificationStatusService.getByIdentity(identity, verificationMethod); + verificationsStatusService.getByIdentity(identity, verificationMethod); LOGGER.info("Response: " + response); } diff --git a/examples/snippets/src/main/java/verification/status/GetByReference.java b/examples/snippets/src/main/java/verification/status/GetByReference.java index 7d69837cd..0342895ba 100644 --- a/examples/snippets/src/main/java/verification/status/GetByReference.java +++ b/examples/snippets/src/main/java/verification/status/GetByReference.java @@ -8,7 +8,7 @@ package verification.status; import com.sinch.sdk.SinchClient; -import com.sinch.sdk.domains.verification.api.v1.VerificationStatusService; +import com.sinch.sdk.domains.verification.api.v1.VerificationsStatusService; import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse; import com.sinch.sdk.models.Configuration; import java.util.logging.Logger; @@ -34,7 +34,7 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - VerificationStatusService verificationStatusService = + VerificationsStatusService verificationsStatusService = client.verification().v1().verificationStatus(); LOGGER.info( @@ -42,7 +42,7 @@ public static void main(String[] args) { "Verification status for verification with reference '%s'", verificationReference)); VerificationStatusResponse response = - verificationStatusService.getByReference(verificationReference); + verificationsStatusService.getByReference(verificationReference); LOGGER.info("Response: " + response); } diff --git a/examples/webhooks/src/main/java/com/mycompany/app/verification/Controller.java b/examples/webhooks/src/main/java/com/mycompany/app/verification/Controller.java index 8f1acc637..def882d81 100644 --- a/examples/webhooks/src/main/java/com/mycompany/app/verification/Controller.java +++ b/examples/webhooks/src/main/java/com/mycompany/app/verification/Controller.java @@ -1,7 +1,7 @@ package com.mycompany.app.verification; import com.sinch.sdk.SinchClient; -import com.sinch.sdk.domains.verification.api.v1.WebHooksService; +import com.sinch.sdk.domains.verification.api.v1.WebhooksService; import com.sinch.sdk.domains.verification.models.v1.webhooks.VerificationRequestEvent; import com.sinch.sdk.domains.verification.models.v1.webhooks.VerificationResultEvent; import com.sinch.sdk.domains.verification.models.v1.webhooks.VerificationSmsDeliveredEvent; @@ -37,7 +37,7 @@ public Controller(SinchClient sinchClient, ServerBusinessLogic webhooksBusinessL public ResponseEntity VerificationEvent( @RequestHeader Map headers, @RequestBody String body) { - WebHooksService webhooks = sinchClient.verification().v1().webhooks(); + WebhooksService webhooks = sinchClient.verification().v1().webhooks(); // ensure valid authentication to handle request // set this value to true to validate request from Sinch servers diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.java b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationsReportService.java similarity index 94% rename from client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.java rename to openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationsReportService.java index c418aff61..be11976ba 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.java +++ b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationsReportService.java @@ -1,3 +1,13 @@ +/* + * Verification | Sinch + * + * OpenAPI document version: 2.0.1 + * Contact: support@sinch.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit the class manually. + */ + package com.sinch.sdk.domains.verification.api.v1; import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; @@ -10,16 +20,8 @@ import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseSms; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseWhatsApp; -/** - * Verification Report Service - * - *

Report about a verification request - * - * @see https://developers.sinch.com/docs/verification/api-reference/verification/tag/Verifications - * @since 1.1 - */ -public interface VerificationReportService { +/** Verifications report Service */ +public interface VerificationsReportService { /** * Report a verification using {@link diff --git a/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationStartService.java b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationsStartService.java similarity index 82% rename from client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationStartService.java rename to openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationsStartService.java index 6c880487a..50aa64981 100644 --- a/client/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationStartService.java +++ b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationsStartService.java @@ -1,3 +1,13 @@ +/* + * Verification | Sinch + * + * OpenAPI document version: 2.0.1 + * Contact: support@sinch.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit the class manually. + */ + package com.sinch.sdk.domains.verification.api.v1; import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestData; @@ -11,19 +21,8 @@ import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseSms; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseWhatsApp; -/** - * Verification Start Service - * - *

Start new verification requests - * - *

This method is used by the mobile and web Verification SDKs to start a verification. It can - * also be used to request a verification from your backend, by making a request. - * - * @see https://developers.sinch.com/docs/verification/api-reference/verification/tag/Verifications - * @since 1.1 - */ -public interface VerificationStartService { +/** Verifications start Service */ +public interface VerificationsStartService { /** * Start verification by SMS diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationsStatusService.java b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationsStatusService.java new file mode 100644 index 000000000..af809845b --- /dev/null +++ b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/VerificationsStatusService.java @@ -0,0 +1,56 @@ +/* + * Verification | Sinch + * + * OpenAPI document version: 2.0.1 + * Contact: support@sinch.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit the class manually. + */ + +package com.sinch.sdk.domains.verification.api.v1; + +import com.sinch.sdk.core.exceptions.ApiException; +import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; +import com.sinch.sdk.domains.verification.models.v1.VerificationMethod; +import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse; + +/** VerificationsStatus Service */ +public interface VerificationsStatusService { + + /** + * Get verification by ID + * + *

Queries the verification result by sending the verification ID. With this query you can get + * the result of a verification. + * + * @param id The ID of the verification. (required) + * @return VerificationStatusResponse + * @throws ApiException if fails to make API call + */ + VerificationStatusResponse getById(String id) throws ApiException; + + /** + * Queries the verification result by sending the verification Identity (usually a phone number) + * and its method. With this query you can get the result of a verification. + * + * @param identity Currently Only {@link + * com.sinch.sdk.domains.verification.models.v1.NumberIdentity} is supported + * @param method Method used for verification + * @return Verification status response + * @since 1.1 + */ + VerificationStatusResponse getByIdentity(NumberIdentity identity, VerificationMethod method); + + /** + * Get verification by Reference + * + *

Queries the verification result by sending the verification Reference. With this query you + * can get the result of a verification. + * + * @param reference The custom reference of the verification. (required) + * @return VerificationStatusResponse + * @throws ApiException if fails to make API call + */ + VerificationStatusResponse getByReference(String reference) throws ApiException; +} diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/internal/VerificationsReportApi.java b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationsReportServiceImpl.java similarity index 51% rename from openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/internal/VerificationsReportApi.java rename to openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationsReportServiceImpl.java index 328e2c422..0178a78b8 100644 --- a/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/internal/VerificationsReportApi.java +++ b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationsReportServiceImpl.java @@ -8,7 +8,7 @@ * Do not edit the class manually. */ -package com.sinch.sdk.domains.verification.api.v1.internal; +package com.sinch.sdk.domains.verification.api.v1.adapters; import com.fasterxml.jackson.core.type.TypeReference; import com.sinch.sdk.core.exceptions.ApiException; @@ -23,8 +23,17 @@ import com.sinch.sdk.core.http.URLParameter; import com.sinch.sdk.core.http.URLPathUtils; import com.sinch.sdk.core.models.ServerConfiguration; -import com.sinch.sdk.domains.verification.models.v1.report.request.internal.VerificationReportRequestInternal; -import com.sinch.sdk.domains.verification.models.v1.report.response.internal.VerificationReportResponseInternal; +import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; +import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequest; +import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestFlashCall; +import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestPhoneCall; +import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestSms; +import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestWhatsApp; +import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponse; +import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseFlashCall; +import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponsePhoneCall; +import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseSms; +import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseWhatsApp; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -33,15 +42,17 @@ import java.util.Map; import java.util.logging.Logger; -public class VerificationsReportApi { +public class VerificationsReportServiceImpl + implements com.sinch.sdk.domains.verification.api.v1.VerificationsReportService { - private static final Logger LOGGER = Logger.getLogger(VerificationsReportApi.class.getName()); - private HttpClient httpClient; - private ServerConfiguration serverConfiguration; - private Map authManagersByOasSecuritySchemes; - private HttpMapper mapper; + private static final Logger LOGGER = + Logger.getLogger(VerificationsReportServiceImpl.class.getName()); + private final HttpClient httpClient; + private final ServerConfiguration serverConfiguration; + private final Map authManagersByOasSecuritySchemes; + private final HttpMapper mapper; - public VerificationsReportApi( + public VerificationsReportServiceImpl( HttpClient httpClient, ServerConfiguration serverConfiguration, Map authManagersByOasSecuritySchemes, @@ -52,18 +63,8 @@ public VerificationsReportApi( this.mapper = mapper; } - /** - * Report a verification with ID Report the received verification code to verify it, using the - * Verification ID of the Verification request. - * - * @param id The ID of the verification. (required) - * @param verificationReportRequestInternal (required) - * @return VerificationReportResponseInternal - * @throws ApiException if fails to make API call - */ - public VerificationReportResponseInternal reportVerificationById( - String id, VerificationReportRequestInternal verificationReportRequestInternal) - throws ApiException { + private VerificationReportResponse reportVerificationById( + String id, VerificationReportRequest verificationReportRequest) throws ApiException { LOGGER.finest( "[reportVerificationById]" @@ -71,19 +72,16 @@ public VerificationReportResponseInternal reportVerificationById( + "id: " + id + ", " - + "verificationReportRequestInternal: " - + verificationReportRequestInternal); + + "verificationReportRequest: " + + verificationReportRequest); - HttpRequest httpRequest = - reportVerificationByIdRequestBuilder(id, verificationReportRequestInternal); + HttpRequest httpRequest = reportVerificationByIdRequestBuilder(id, verificationReportRequest); HttpResponse response = httpClient.invokeAPI( this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest); if (HttpStatus.isSuccessfulStatus(response.getCode())) { - TypeReference localVarReturnType = - new TypeReference() {}; - return mapper.deserialize(response, localVarReturnType); + return mapper.deserialize(response, new TypeReference() {}); } // fallback to default errors handling: // all error cases definition are not required from specs: will try some "hardcoded" content @@ -95,18 +93,17 @@ public VerificationReportResponseInternal reportVerificationById( } private HttpRequest reportVerificationByIdRequestBuilder( - String id, VerificationReportRequestInternal verificationReportRequestInternal) - throws ApiException { + String id, VerificationReportRequest verificationReportRequest) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException( 400, "Missing the required parameter 'id' when calling reportVerificationById"); } - // verify the required parameter 'verificationReportRequestInternal' is set - if (verificationReportRequestInternal == null) { + // verify the required parameter 'verificationReportRequest' is set + if (verificationReportRequest == null) { throw new ApiException( 400, - "Missing the required parameter 'verificationReportRequestInternal' when calling" + "Missing the required parameter 'verificationReportRequest' when calling" + " reportVerificationById"); } @@ -123,8 +120,7 @@ private HttpRequest reportVerificationByIdRequestBuilder( final Collection localVarContentTypes = Arrays.asList("application/json"); final Collection localVarAuthNames = Arrays.asList("Basic", "Application"); - final String serializedBody = - mapper.serialize(localVarContentTypes, verificationReportRequestInternal); + final String serializedBody = mapper.serialize(localVarContentTypes, verificationReportRequest); return new HttpRequest( localVarPath, @@ -137,21 +133,8 @@ private HttpRequest reportVerificationByIdRequestBuilder( localVarAuthNames); } - /** - * Report a verification using Identity Report the received verification code to verify it, using - * the identity of the user (in most cases, the phone number). For an SMS verification or Phone - * Call verification, this is the OTP code. For FlashCall, this is the CLI. - * - * @param endpoint For type `number` use a - * [E.164](https://community.sinch.com/t5/Glossary/E-164/ta-p/7537)-compatible phone number. - * (required) - * @param verificationReportRequestInternal (required) - * @return VerificationReportResponseInternal - * @throws ApiException if fails to make API call - */ - public VerificationReportResponseInternal reportVerificationByIdentity( - String endpoint, VerificationReportRequestInternal verificationReportRequestInternal) - throws ApiException { + private VerificationReportResponse reportVerificationByIdentity( + String endpoint, VerificationReportRequest verificationReportRequest) throws ApiException { LOGGER.finest( "[reportVerificationByIdentity]" @@ -159,19 +142,17 @@ public VerificationReportResponseInternal reportVerificationByIdentity( + "endpoint: " + endpoint + ", " - + "verificationReportRequestInternal: " - + verificationReportRequestInternal); + + "verificationReportRequest: " + + verificationReportRequest); HttpRequest httpRequest = - reportVerificationByIdentityRequestBuilder(endpoint, verificationReportRequestInternal); + reportVerificationByIdentityRequestBuilder(endpoint, verificationReportRequest); HttpResponse response = httpClient.invokeAPI( this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest); if (HttpStatus.isSuccessfulStatus(response.getCode())) { - TypeReference localVarReturnType = - new TypeReference() {}; - return mapper.deserialize(response, localVarReturnType); + return mapper.deserialize(response, new TypeReference() {}); } // fallback to default errors handling: // all error cases definition are not required from specs: will try some "hardcoded" content @@ -183,19 +164,18 @@ public VerificationReportResponseInternal reportVerificationByIdentity( } private HttpRequest reportVerificationByIdentityRequestBuilder( - String endpoint, VerificationReportRequestInternal verificationReportRequestInternal) - throws ApiException { + String endpoint, VerificationReportRequest verificationReportRequest) throws ApiException { // verify the required parameter 'endpoint' is set if (endpoint == null) { throw new ApiException( 400, "Missing the required parameter 'endpoint' when calling reportVerificationByIdentity"); } - // verify the required parameter 'verificationReportRequestInternal' is set - if (verificationReportRequestInternal == null) { + // verify the required parameter 'verificationReportRequest' is set + if (verificationReportRequest == null) { throw new ApiException( 400, - "Missing the required parameter 'verificationReportRequestInternal' when calling" + "Missing the required parameter 'verificationReportRequest' when calling" + " reportVerificationByIdentity"); } @@ -213,8 +193,7 @@ private HttpRequest reportVerificationByIdentityRequestBuilder( final Collection localVarContentTypes = Arrays.asList("application/json"); final Collection localVarAuthNames = Arrays.asList("Basic", "Application"); - final String serializedBody = - mapper.serialize(localVarContentTypes, verificationReportRequestInternal); + final String serializedBody = mapper.serialize(localVarContentTypes, verificationReportRequest); return new HttpRequest( localVarPath, @@ -226,4 +205,69 @@ private HttpRequest reportVerificationByIdentityRequestBuilder( localVarContentTypes, localVarAuthNames); } + + @Override + public VerificationReportResponseSms reportSmsByIdentity( + NumberIdentity identity, VerificationReportRequestSms parameters) { + + return (VerificationReportResponseSms) reportByIdentity(identity, parameters); + } + + @Override + public VerificationReportResponseFlashCall reportFlashCallByIdentity( + NumberIdentity identity, VerificationReportRequestFlashCall parameters) { + + return (VerificationReportResponseFlashCall) reportByIdentity(identity, parameters); + } + + @Override + public VerificationReportResponsePhoneCall reportPhoneCallByIdentity( + NumberIdentity identity, VerificationReportRequestPhoneCall parameters) { + + return (VerificationReportResponsePhoneCall) reportByIdentity(identity, parameters); + } + + @Override + public VerificationReportResponseWhatsApp reportWhatsAppByIdentity( + NumberIdentity identity, VerificationReportRequestWhatsApp parameters) { + + return (VerificationReportResponseWhatsApp) reportByIdentity(identity, parameters); + } + + @Override + public VerificationReportResponseSms reportSmsById( + String id, VerificationReportRequestSms parameters) { + + return (VerificationReportResponseSms) reportById(id, parameters); + } + + @Override + public VerificationReportResponseFlashCall reportFlashCallById( + String id, VerificationReportRequestFlashCall parameters) { + + return (VerificationReportResponseFlashCall) reportById(id, parameters); + } + + @Override + public VerificationReportResponsePhoneCall reportPhoneCallById( + String id, VerificationReportRequestPhoneCall parameters) { + + return (VerificationReportResponsePhoneCall) reportById(id, parameters); + } + + @Override + public VerificationReportResponseWhatsApp reportWhatsAppById( + String id, VerificationReportRequestWhatsApp parameters) { + + return (VerificationReportResponseWhatsApp) reportById(id, parameters); + } + + private VerificationReportResponse reportByIdentity( + NumberIdentity identity, VerificationReportRequest parameters) { + return reportVerificationByIdentity(identity.getEndpoint(), parameters); + } + + private VerificationReportResponse reportById(String id, VerificationReportRequest parameters) { + return reportVerificationById(id, parameters); + } } diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationsStartServiceImpl.java b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationsStartServiceImpl.java new file mode 100644 index 000000000..d65c43483 --- /dev/null +++ b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationsStartServiceImpl.java @@ -0,0 +1,171 @@ +/* + * Verification | Sinch + * + * OpenAPI document version: 2.0.1 + * Contact: support@sinch.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit the class manually. + */ + +package com.sinch.sdk.domains.verification.api.v1.adapters; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.sinch.sdk.core.exceptions.ApiException; +import com.sinch.sdk.core.exceptions.ApiExceptionBuilder; +import com.sinch.sdk.core.http.AuthManager; +import com.sinch.sdk.core.http.HttpClient; +import com.sinch.sdk.core.http.HttpMapper; +import com.sinch.sdk.core.http.HttpMethod; +import com.sinch.sdk.core.http.HttpRequest; +import com.sinch.sdk.core.http.HttpResponse; +import com.sinch.sdk.core.http.HttpStatus; +import com.sinch.sdk.core.http.URLParameter; +import com.sinch.sdk.core.models.ServerConfiguration; +import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequest; +import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestData; +import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestFlashCall; +import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestPhoneCall; +import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestSms; +import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestWhatsApp; +import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponse; +import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseData; +import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseFlashCall; +import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponsePhoneCall; +import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseSms; +import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseWhatsApp; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.logging.Logger; + +public class VerificationsStartServiceImpl + implements com.sinch.sdk.domains.verification.api.v1.VerificationsStartService { + + private static final Logger LOGGER = + Logger.getLogger(VerificationsStartServiceImpl.class.getName()); + private final HttpClient httpClient; + private final ServerConfiguration serverConfiguration; + private final Map authManagersByOasSecuritySchemes; + private final HttpMapper mapper; + + public VerificationsStartServiceImpl( + HttpClient httpClient, + ServerConfiguration serverConfiguration, + Map authManagersByOasSecuritySchemes, + HttpMapper mapper) { + this.httpClient = httpClient; + this.serverConfiguration = serverConfiguration; + this.authManagersByOasSecuritySchemes = authManagersByOasSecuritySchemes; + this.mapper = mapper; + } + + private VerificationStartResponse startVerification( + String acceptLanguage, VerificationStartRequest verificationStartRequest) + throws ApiException { + + LOGGER.finest( + "[startVerification]" + + " " + + "acceptLanguage: " + + acceptLanguage + + ", " + + "verificationStartRequest: " + + verificationStartRequest); + + HttpRequest httpRequest = + startVerificationRequestBuilder(acceptLanguage, verificationStartRequest); + HttpResponse response = + httpClient.invokeAPI( + this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest); + + if (HttpStatus.isSuccessfulStatus(response.getCode())) { + return mapper.deserialize(response, new TypeReference() {}); + } + // fallback to default errors handling: + // all error cases definition are not required from specs: will try some "hardcoded" content + // parsing + throw ApiExceptionBuilder.build( + response.getMessage(), + response.getCode(), + mapper.deserialize(response, new TypeReference>() {})); + } + + private HttpRequest startVerificationRequestBuilder( + String acceptLanguage, VerificationStartRequest verificationStartRequest) + throws ApiException { + // verify the required parameter 'verificationStartRequest' is set + if (verificationStartRequest == null) { + throw new ApiException( + 400, + "Missing the required parameter 'verificationStartRequest' when calling" + + " startVerification"); + } + + String localVarPath = "/verification/v1/verifications"; + + List localVarQueryParams = new ArrayList<>(); + + Map localVarHeaderParams = new HashMap<>(); + if (acceptLanguage != null) localVarHeaderParams.put("Accept-Language", acceptLanguage); + + final Collection localVarAccepts = Arrays.asList("application/json"); + + final Collection localVarContentTypes = Arrays.asList("application/json"); + + final Collection localVarAuthNames = Arrays.asList("Basic", "Application"); + final String serializedBody = mapper.serialize(localVarContentTypes, verificationStartRequest); + + return new HttpRequest( + localVarPath, + HttpMethod.POST, + localVarQueryParams, + serializedBody, + localVarHeaderParams, + localVarAccepts, + localVarContentTypes, + localVarAuthNames); + } + + @Override + public VerificationStartResponseSms startSms(VerificationStartRequestSms parameters) { + String acceptLanguage = parameters.getAcceptLanguage(); + return (VerificationStartResponseSms) start(parameters, acceptLanguage).orElse(null); + } + + @Override + public VerificationStartResponseFlashCall startFlashCall( + VerificationStartRequestFlashCall parameters) { + return (VerificationStartResponseFlashCall) start(parameters).orElse(null); + } + + @Override + public VerificationStartResponsePhoneCall startPhoneCall( + VerificationStartRequestPhoneCall parameters) { + return (VerificationStartResponsePhoneCall) start(parameters).orElse(null); + } + + @Override + public VerificationStartResponseData startData(VerificationStartRequestData parameters) { + return (VerificationStartResponseData) start(parameters).orElse(null); + } + + @Override + public VerificationStartResponseWhatsApp startWhatsApp( + VerificationStartRequestWhatsApp parameters) { + return (VerificationStartResponseWhatsApp) start(parameters).orElse(null); + } + + private Optional start(VerificationStartRequest parameters) { + return start(parameters, null); + } + + private Optional start( + VerificationStartRequest parameters, String acceptLanguage) { + return Optional.ofNullable(startVerification(acceptLanguage, parameters)); + } +} diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/internal/VerificationStatusApi.java b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationsStatusServiceImpl.java similarity index 61% rename from openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/internal/VerificationStatusApi.java rename to openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationsStatusServiceImpl.java index f0a69f848..683a82127 100644 --- a/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/internal/VerificationStatusApi.java +++ b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationsStatusServiceImpl.java @@ -8,7 +8,7 @@ * Do not edit the class manually. */ -package com.sinch.sdk.domains.verification.api.v1.internal; +package com.sinch.sdk.domains.verification.api.v1.adapters; import com.fasterxml.jackson.core.type.TypeReference; import com.sinch.sdk.core.exceptions.ApiException; @@ -23,7 +23,9 @@ import com.sinch.sdk.core.http.URLParameter; import com.sinch.sdk.core.http.URLPathUtils; import com.sinch.sdk.core.models.ServerConfiguration; -import com.sinch.sdk.domains.verification.models.v1.status.response.internal.VerificationStatusResponseInternal; +import com.sinch.sdk.domains.verification.models.v1.NumberIdentity; +import com.sinch.sdk.domains.verification.models.v1.VerificationMethod; +import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -32,15 +34,17 @@ import java.util.Map; import java.util.logging.Logger; -public class VerificationStatusApi { +public class VerificationsStatusServiceImpl + implements com.sinch.sdk.domains.verification.api.v1.VerificationsStatusService { - private static final Logger LOGGER = Logger.getLogger(VerificationStatusApi.class.getName()); - private HttpClient httpClient; - private ServerConfiguration serverConfiguration; - private Map authManagersByOasSecuritySchemes; - private HttpMapper mapper; + private static final Logger LOGGER = + Logger.getLogger(VerificationsStatusServiceImpl.class.getName()); + private final HttpClient httpClient; + private final ServerConfiguration serverConfiguration; + private final Map authManagersByOasSecuritySchemes; + private final HttpMapper mapper; - public VerificationStatusApi( + public VerificationsStatusServiceImpl( HttpClient httpClient, ServerConfiguration serverConfiguration, Map authManagersByOasSecuritySchemes, @@ -51,27 +55,18 @@ public VerificationStatusApi( this.mapper = mapper; } - /** - * Get verification by ID Queries the verification result by sending the verification ID. With - * this query you can get the result of a verification. - * - * @param id The ID of the verification. (required) - * @return VerificationStatusResponseInternal - * @throws ApiException if fails to make API call - */ - public VerificationStatusResponseInternal verificationStatusById(String id) throws ApiException { + @Override + public VerificationStatusResponse getById(String id) throws ApiException { - LOGGER.finest("[verificationStatusById]" + " " + "id: " + id); + LOGGER.finest("[getById]" + " " + "id: " + id); - HttpRequest httpRequest = verificationStatusByIdRequestBuilder(id); + HttpRequest httpRequest = getByIdRequestBuilder(id); HttpResponse response = httpClient.invokeAPI( this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest); if (HttpStatus.isSuccessfulStatus(response.getCode())) { - TypeReference localVarReturnType = - new TypeReference() {}; - return mapper.deserialize(response, localVarReturnType); + return mapper.deserialize(response, new TypeReference() {}); } // fallback to default errors handling: // all error cases definition are not required from specs: will try some "hardcoded" content @@ -82,11 +77,10 @@ public VerificationStatusResponseInternal verificationStatusById(String id) thro mapper.deserialize(response, new TypeReference>() {})); } - private HttpRequest verificationStatusByIdRequestBuilder(String id) throws ApiException { + private HttpRequest getByIdRequestBuilder(String id) throws ApiException { // verify the required parameter 'id' is set if (id == null) { - throw new ApiException( - 400, "Missing the required parameter 'id' when calling verificationStatusById"); + throw new ApiException(400, "Missing the required parameter 'id' when calling getById"); } String localVarPath = @@ -115,39 +109,25 @@ private HttpRequest verificationStatusByIdRequestBuilder(String id) throws ApiEx localVarAuthNames); } - /** - * Get verification by Identity Queries the verification result by sending the verification - * Identity (usually a phone number) and its method. With this query you can get the result of a - * verification. - * - * @param endpoint For type `number` use a - * [E.164](https://community.sinch.com/t5/Glossary/E-164/ta-p/7537)-compatible phone number. - * (required) - * @param method The method of the verification. (required) - * @return VerificationStatusResponseInternal - * @throws ApiException if fails to make API call - */ - public VerificationStatusResponseInternal verificationStatusByIdentity( - String endpoint, String method) throws ApiException { - - LOGGER.finest( - "[verificationStatusByIdentity]" - + " " - + "endpoint: " - + endpoint - + ", " - + "method: " - + method); - - HttpRequest httpRequest = verificationStatusByIdentityRequestBuilder(endpoint, method); + @Override + public VerificationStatusResponse getByIdentity( + NumberIdentity identity, VerificationMethod method) { + + return getByIdentity(identity.getEndpoint(), method.value()); + } + + private VerificationStatusResponse getByIdentity(String endpoint, String method) + throws ApiException { + + LOGGER.finest("[getByIdentity]" + " " + "endpoint: " + endpoint + ", " + "method: " + method); + + HttpRequest httpRequest = getByIdentityRequestBuilder(endpoint, method); HttpResponse response = httpClient.invokeAPI( this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest); if (HttpStatus.isSuccessfulStatus(response.getCode())) { - TypeReference localVarReturnType = - new TypeReference() {}; - return mapper.deserialize(response, localVarReturnType); + return mapper.deserialize(response, new TypeReference() {}); } // fallback to default errors handling: // all error cases definition are not required from specs: will try some "hardcoded" content @@ -158,18 +138,17 @@ public VerificationStatusResponseInternal verificationStatusByIdentity( mapper.deserialize(response, new TypeReference>() {})); } - private HttpRequest verificationStatusByIdentityRequestBuilder(String endpoint, String method) + private HttpRequest getByIdentityRequestBuilder(String endpoint, String method) throws ApiException { // verify the required parameter 'endpoint' is set if (endpoint == null) { throw new ApiException( - 400, - "Missing the required parameter 'endpoint' when calling verificationStatusByIdentity"); + 400, "Missing the required parameter 'endpoint' when calling getByIdentity"); } // verify the required parameter 'method' is set if (method == null) { throw new ApiException( - 400, "Missing the required parameter 'method' when calling verificationStatusByIdentity"); + 400, "Missing the required parameter 'method' when calling getByIdentity"); } String localVarPath = @@ -201,28 +180,18 @@ private HttpRequest verificationStatusByIdentityRequestBuilder(String endpoint, localVarAuthNames); } - /** - * Get verification by Reference Queries the verification result by sending the verification - * Reference. With this query you can get the result of a verification. - * - * @param reference The custom reference of the verification. (required) - * @return VerificationStatusResponseInternal - * @throws ApiException if fails to make API call - */ - public VerificationStatusResponseInternal verificationStatusByReference(String reference) - throws ApiException { + @Override + public VerificationStatusResponse getByReference(String reference) throws ApiException { - LOGGER.finest("[verificationStatusByReference]" + " " + "reference: " + reference); + LOGGER.finest("[getByReference]" + " " + "reference: " + reference); - HttpRequest httpRequest = verificationStatusByReferenceRequestBuilder(reference); + HttpRequest httpRequest = getByReferenceRequestBuilder(reference); HttpResponse response = httpClient.invokeAPI( this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest); if (HttpStatus.isSuccessfulStatus(response.getCode())) { - TypeReference localVarReturnType = - new TypeReference() {}; - return mapper.deserialize(response, localVarReturnType); + return mapper.deserialize(response, new TypeReference() {}); } // fallback to default errors handling: // all error cases definition are not required from specs: will try some "hardcoded" content @@ -233,13 +202,11 @@ public VerificationStatusResponseInternal verificationStatusByReference(String r mapper.deserialize(response, new TypeReference>() {})); } - private HttpRequest verificationStatusByReferenceRequestBuilder(String reference) - throws ApiException { + private HttpRequest getByReferenceRequestBuilder(String reference) throws ApiException { // verify the required parameter 'reference' is set if (reference == null) { throw new ApiException( - 400, - "Missing the required parameter 'reference' when calling verificationStatusByReference"); + 400, "Missing the required parameter 'reference' when calling getByReference"); } String localVarPath = diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/internal/VerificationsStartApi.java b/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/internal/VerificationsStartApi.java deleted file mode 100644 index 4a9f036b5..000000000 --- a/openapi-contracts/src/main/com/sinch/sdk/domains/verification/api/v1/internal/VerificationsStartApi.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Verification | Sinch - * - * OpenAPI document version: 2.0.1 - * Contact: support@sinch.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * Do not edit the class manually. - */ - -package com.sinch.sdk.domains.verification.api.v1.internal; - -import com.fasterxml.jackson.core.type.TypeReference; -import com.sinch.sdk.core.exceptions.ApiException; -import com.sinch.sdk.core.exceptions.ApiExceptionBuilder; -import com.sinch.sdk.core.http.AuthManager; -import com.sinch.sdk.core.http.HttpClient; -import com.sinch.sdk.core.http.HttpMapper; -import com.sinch.sdk.core.http.HttpMethod; -import com.sinch.sdk.core.http.HttpRequest; -import com.sinch.sdk.core.http.HttpResponse; -import com.sinch.sdk.core.http.HttpStatus; -import com.sinch.sdk.core.http.URLParameter; -import com.sinch.sdk.core.models.ServerConfiguration; -import com.sinch.sdk.domains.verification.models.v1.start.request.internal.VerificationStartRequestInternal; -import com.sinch.sdk.domains.verification.models.v1.start.response.internal.VerificationStartResponseInternal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.logging.Logger; - -public class VerificationsStartApi { - - private static final Logger LOGGER = Logger.getLogger(VerificationsStartApi.class.getName()); - private HttpClient httpClient; - private ServerConfiguration serverConfiguration; - private Map authManagersByOasSecuritySchemes; - private HttpMapper mapper; - - public VerificationsStartApi( - HttpClient httpClient, - ServerConfiguration serverConfiguration, - Map authManagersByOasSecuritySchemes, - HttpMapper mapper) { - this.httpClient = httpClient; - this.serverConfiguration = serverConfiguration; - this.authManagersByOasSecuritySchemes = authManagersByOasSecuritySchemes; - this.mapper = mapper; - } - - /** - * Start verification This method is used by the mobile and web Verification SDKs to start a - * verification. It can also be used to request a verification from your backend, by making an - * request. - * - * @param verificationStartRequestInternal (required) - * @param acceptLanguage In SMS Verification, value of - * [Accept-Language](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language) - * header is used to determine the language of an SMS message. (optional) - * @return VerificationStartResponseInternal - * @throws ApiException if fails to make API call - */ - public VerificationStartResponseInternal startVerification( - VerificationStartRequestInternal verificationStartRequestInternal, String acceptLanguage) - throws ApiException { - - LOGGER.finest( - "[startVerification]" - + " " - + "verificationStartRequestInternal: " - + verificationStartRequestInternal - + ", " - + "acceptLanguage: " - + acceptLanguage); - - HttpRequest httpRequest = - startVerificationRequestBuilder(verificationStartRequestInternal, acceptLanguage); - HttpResponse response = - httpClient.invokeAPI( - this.serverConfiguration, this.authManagersByOasSecuritySchemes, httpRequest); - - if (HttpStatus.isSuccessfulStatus(response.getCode())) { - TypeReference localVarReturnType = - new TypeReference() {}; - return mapper.deserialize(response, localVarReturnType); - } - // fallback to default errors handling: - // all error cases definition are not required from specs: will try some "hardcoded" content - // parsing - throw ApiExceptionBuilder.build( - response.getMessage(), - response.getCode(), - mapper.deserialize(response, new TypeReference>() {})); - } - - private HttpRequest startVerificationRequestBuilder( - VerificationStartRequestInternal verificationStartRequestInternal, String acceptLanguage) - throws ApiException { - // verify the required parameter 'verificationStartRequestInternal' is set - if (verificationStartRequestInternal == null) { - throw new ApiException( - 400, - "Missing the required parameter 'verificationStartRequestInternal' when calling" - + " startVerification"); - } - - String localVarPath = "/verification/v1/verifications"; - - List localVarQueryParams = new ArrayList<>(); - - Map localVarHeaderParams = new HashMap<>(); - if (acceptLanguage != null) localVarHeaderParams.put("Accept-Language", acceptLanguage); - - final Collection localVarAccepts = Arrays.asList("application/json"); - - final Collection localVarContentTypes = Arrays.asList("application/json"); - - final Collection localVarAuthNames = Arrays.asList("Basic", "Application"); - final String serializedBody = - mapper.serialize(localVarContentTypes, verificationStartRequestInternal); - - return new HttpRequest( - localVarPath, - HttpMethod.POST, - localVarQueryParams, - serializedBody, - localVarHeaderParams, - localVarAccepts, - localVarContentTypes, - localVarAuthNames); - } -} diff --git a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/adapters/VerificationBaseTest.java b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/adapters/VerificationBaseTest.java index da867d730..eddb7c836 100644 --- a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/adapters/VerificationBaseTest.java +++ b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/adapters/VerificationBaseTest.java @@ -6,6 +6,6 @@ public class VerificationBaseTest extends BaseTest { static { // faking a service init to trigger dedicated serializers initialization - VerificationService.LocalLazyInit.init(); + new com.sinch.sdk.domains.verification.api.v1.adapters.VerificationBaseTest(); } } diff --git a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationBaseTest.java b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationBaseTest.java new file mode 100644 index 000000000..eff9e44bd --- /dev/null +++ b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/api/v1/adapters/VerificationBaseTest.java @@ -0,0 +1,11 @@ +package com.sinch.sdk.domains.verification.api.v1.adapters; + +import com.sinch.sdk.BaseTest; + +public class VerificationBaseTest extends BaseTest { + + static { + // faking a service init to trigger dedicated serializers initialization + VerificationService.LocalLazyInit.init(); + } +} diff --git a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/report/VerificationReportRequestDtoTest.java b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/report/VerificationReportRequestDtoTest.java index 89727239a..32ff2d5dd 100644 --- a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/report/VerificationReportRequestDtoTest.java +++ b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/report/VerificationReportRequestDtoTest.java @@ -5,14 +5,9 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.sinch.sdk.BaseTest; import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestFlashCall; -import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestFlashCallImpl; import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestPhoneCall; -import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestPhoneCallImpl; import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestSms; -import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestSmsImpl; import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestWhatsApp; -import com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestWhatsAppImpl; -import com.sinch.sdk.domains.verification.models.v1.report.request.internal.VerificationReportRequestInternalImpl; import org.json.JSONException; import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; @@ -20,24 +15,17 @@ @TestWithResources public class VerificationReportRequestDtoTest extends BaseTest { - public static VerificationReportRequestInternalImpl verificationReportPhoneCallDto = - new VerificationReportRequestInternalImpl( - (VerificationReportRequestPhoneCallImpl) - VerificationReportRequestPhoneCall.builder().setCode("foo code").build()); - - public static VerificationReportRequestInternalImpl verificationReportFlashCallDto = - new VerificationReportRequestInternalImpl( - (VerificationReportRequestFlashCallImpl) - VerificationReportRequestFlashCall.builder().setCli("foo cli").build()); - public static VerificationReportRequestInternalImpl verificationReportSmsDto = - new VerificationReportRequestInternalImpl( - (VerificationReportRequestSmsImpl) - VerificationReportRequestSms.builder().setCode("foo code").build()); - - public static VerificationReportRequestInternalImpl verificationReportWhatsAppDto = - new VerificationReportRequestInternalImpl( - (VerificationReportRequestWhatsAppImpl) - VerificationReportRequestWhatsApp.builder().setCode("foo code").build()); + public static VerificationReportRequestPhoneCall verificationReportPhoneCallDto = + VerificationReportRequestPhoneCall.builder().setCode("foo code").build(); + + public static VerificationReportRequestFlashCall verificationReportFlashCallDto = + VerificationReportRequestFlashCall.builder().setCli("foo cli").build(); + + public static VerificationReportRequestSms verificationReportSmsDto = + VerificationReportRequestSms.builder().setCode("foo code").build(); + + public static VerificationReportRequestWhatsApp verificationReportWhatsAppDto = + VerificationReportRequestWhatsApp.builder().setCode("foo code").build(); @GivenTextResource("/domains/verification/v1/report/VerificationReportRequestPhoneCallDto.json") String jsonVerificationReportPhoneCall; diff --git a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/report/VerificationReportResponseDtoTest.java b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/report/VerificationReportResponseDtoTest.java index 1bebe2d3f..43cfd1da7 100644 --- a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/report/VerificationReportResponseDtoTest.java +++ b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/report/VerificationReportResponseDtoTest.java @@ -2,74 +2,61 @@ import com.adelean.inject.resources.junit.jupiter.GivenJsonResource; import com.adelean.inject.resources.junit.jupiter.TestWithResources; -import com.sinch.sdk.BaseTest; import com.sinch.sdk.core.TestHelpers; +import com.sinch.sdk.domains.verification.api.v1.adapters.VerificationBaseTest; import com.sinch.sdk.domains.verification.models.v1.VerificationStatus; import com.sinch.sdk.domains.verification.models.v1.VerificationStatusReason; +import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponse; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseFlashCall; -import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseFlashCallImpl; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponsePhoneCall; -import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponsePhoneCallImpl; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseSms; -import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseSmsImpl; import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseWhatsApp; -import com.sinch.sdk.domains.verification.models.v1.report.response.VerificationReportResponseWhatsAppImpl; -import com.sinch.sdk.domains.verification.models.v1.report.response.internal.VerificationReportResponseInternal; -import com.sinch.sdk.domains.verification.models.v1.report.response.internal.VerificationReportResponseInternalImpl; import org.junit.jupiter.api.Test; @TestWithResources -public class VerificationReportResponseDtoTest extends BaseTest { +public class VerificationReportResponseDtoTest extends VerificationBaseTest { @GivenJsonResource("/domains/verification/v1/report/VerificationReportResponsePhoneCallDto.json") - VerificationReportResponseInternal expectedVerificationReportPhoneCall; + VerificationReportResponse expectedVerificationReportPhoneCall; - public static VerificationReportResponseInternalImpl verificationReportPhoneCallDto = - new VerificationReportResponseInternalImpl( - (VerificationReportResponsePhoneCallImpl) - VerificationReportResponsePhoneCall.builder() - .setId("the id") - .setStatus(VerificationStatus.FAIL) - .setReason(VerificationStatusReason.INVALID_CLI) - .setCallComplete(true) - .build()); + public static VerificationReportResponsePhoneCall verificationReportPhoneCallDto = + VerificationReportResponsePhoneCall.builder() + .setId("the id") + .setStatus(VerificationStatus.FAIL) + .setReason(VerificationStatusReason.INVALID_CLI) + .setCallComplete(true) + .build(); @GivenJsonResource("/domains/verification/v1/report/VerificationReportResponseFlashCallDto.json") - VerificationReportResponseInternal expectedVerificationReportFlashCall; + VerificationReportResponse expectedVerificationReportFlashCall; - public static VerificationReportResponseInternalImpl verificationReportFlashCallDto = - new VerificationReportResponseInternalImpl( - (VerificationReportResponseFlashCallImpl) - VerificationReportResponseFlashCall.builder() - .setId("the id") - .setStatus(VerificationStatus.FAIL) - .setReason(VerificationStatusReason.FRAUD) - .setCallComplete(true) - .build()); + public static VerificationReportResponseFlashCall verificationReportFlashCallDto = + VerificationReportResponseFlashCall.builder() + .setId("the id") + .setStatus(VerificationStatus.FAIL) + .setReason(VerificationStatusReason.FRAUD) + .setCallComplete(true) + .build(); @GivenJsonResource("/domains/verification/v1/report/VerificationReportResponseSmsDto.json") - VerificationReportResponseInternal expectedVerificationReportSms; + VerificationReportResponse expectedVerificationReportSms; - public static VerificationReportResponseInternalImpl verificationReportSmsDto = - new VerificationReportResponseInternalImpl( - (VerificationReportResponseSmsImpl) - VerificationReportResponseSms.builder() - .setId("the id") - .setStatus(VerificationStatus.FAIL) - .setReason(VerificationStatusReason.EXPIRED) - .build()); + public static VerificationReportResponseSms verificationReportSmsDto = + VerificationReportResponseSms.builder() + .setId("the id") + .setStatus(VerificationStatus.FAIL) + .setReason(VerificationStatusReason.EXPIRED) + .build(); @GivenJsonResource("/domains/verification/v1/report/VerificationReportResponseWhatsAppDto.json") - VerificationReportResponseInternal expectedVerificationReportWhatsApp; + VerificationReportResponse expectedVerificationReportWhatsApp; - public static VerificationReportResponseInternalImpl verificationReportWhatsAppDto = - new VerificationReportResponseInternalImpl( - (VerificationReportResponseWhatsAppImpl) - VerificationReportResponseWhatsApp.builder() - .setId("the id") - .setStatus(VerificationStatus.FAIL) - .setReason(VerificationStatusReason.EXPIRED) - .build()); + public static VerificationReportResponseWhatsApp verificationReportWhatsAppDto = + VerificationReportResponseWhatsApp.builder() + .setId("the id") + .setStatus(VerificationStatus.FAIL) + .setReason(VerificationStatusReason.EXPIRED) + .build(); @Test void deserializePhoneCall() { diff --git a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/start/request/VerificationStartRequestTest.java b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/start/request/VerificationStartRequestTest.java index bad5a79d0..9fbc8f8b3 100644 --- a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/start/request/VerificationStartRequestTest.java +++ b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/start/request/VerificationStartRequestTest.java @@ -9,13 +9,9 @@ import com.sinch.sdk.domains.verification.models.v1.WhatsAppCodeType; import com.sinch.sdk.domains.verification.models.v1.start.request.PhoneCallSpeech; import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestData; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestDataImpl; import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestFlashCall; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestFlashCallImpl; import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestPhoneCall; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestPhoneCallImpl; import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestSms; -import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestSmsImpl; import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestWhatsApp; import com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestWhatsAppImpl; import com.sinch.sdk.domains.verification.models.v1.start.request.internal.VerificationStartRequestInternalImpl; @@ -26,60 +22,50 @@ @TestWithResources public class VerificationStartRequestTest extends VerificationBaseTest { - public static VerificationStartRequestInternalImpl startVerificationPhoneCallDto = - new VerificationStartRequestInternalImpl( - (VerificationStartRequestPhoneCallImpl) - VerificationStartRequestPhoneCall.builder() - .setCustom("a custom") - .setReference("a reference") - .setIdentity(NumberIdentity.valueOf("+endpoint")) - .setSpeech(PhoneCallSpeech.builder().setLocale("fr-FR").build()) - .putExtraOption("my key", "my value") - .build()); - - public static VerificationStartRequestInternalImpl startVerificationFlashCallDto = - new VerificationStartRequestInternalImpl( - (VerificationStartRequestFlashCallImpl) - VerificationStartRequestFlashCall.builder() - .setCustom("a custom") - .setReference("a reference") - .setIdentity(NumberIdentity.valueOf("+endpoint")) - .setDialTimeout(17) - .setInterceptionTimeout(23) - .putExtraOption("my key", "my value") - .build()); - public static VerificationStartRequestInternalImpl startVerificationDataDto = - new VerificationStartRequestInternalImpl( - (VerificationStartRequestDataImpl) - VerificationStartRequestData.builder() - .setCustom("a custom") - .setReference("a reference") - .setIdentity(NumberIdentity.valueOf("+endpoint")) - .build()); - public static VerificationStartRequestInternalImpl startVerificationSmsDto = - new VerificationStartRequestInternalImpl( - (VerificationStartRequestSmsImpl) - VerificationStartRequestSms.builder() - .setCustom("a custom") - .setReference("a reference") - .setIdentity(NumberIdentity.valueOf("+endpoint")) - .setExpiry("01:02:03") - .setCodeType(SmsCodeType.ALPHANUMERIC) - .putExtraOption("my key", "my value") - .build()); - - public static VerificationStartRequestInternalImpl startVerificationSmsDtoWithAcceptLanguage = - new VerificationStartRequestInternalImpl( - (VerificationStartRequestSmsImpl) - VerificationStartRequestSms.builder() - .setCustom("a custom") - .setReference("a reference") - .setIdentity(NumberIdentity.valueOf("+endpoint")) - .setExpiry("01:02:03") - .setCodeType(SmsCodeType.ALPHANUMERIC) - .setAcceptLanguage("es-ES") - .putExtraOption("my key", "my value") - .build()); + public static VerificationStartRequestPhoneCall startVerificationPhoneCallDto = + VerificationStartRequestPhoneCall.builder() + .setCustom("a custom") + .setReference("a reference") + .setIdentity(NumberIdentity.valueOf("+endpoint")) + .setSpeech(PhoneCallSpeech.builder().setLocale("fr-FR").build()) + .putExtraOption("my key", "my value") + .build(); + + public static VerificationStartRequestFlashCall startVerificationFlashCallDto = + VerificationStartRequestFlashCall.builder() + .setCustom("a custom") + .setReference("a reference") + .setIdentity(NumberIdentity.valueOf("+endpoint")) + .setDialTimeout(17) + .setInterceptionTimeout(23) + .putExtraOption("my key", "my value") + .build(); + public static VerificationStartRequestData startVerificationDataDto = + VerificationStartRequestData.builder() + .setCustom("a custom") + .setReference("a reference") + .setIdentity(NumberIdentity.valueOf("+endpoint")) + .build(); + public static VerificationStartRequestSms startVerificationSmsDto = + VerificationStartRequestSms.builder() + .setCustom("a custom") + .setReference("a reference") + .setIdentity(NumberIdentity.valueOf("+endpoint")) + .setExpiry("01:02:03") + .setCodeType(SmsCodeType.ALPHANUMERIC) + .putExtraOption("my key", "my value") + .build(); + + public static VerificationStartRequestSms startVerificationSmsDtoWithAcceptLanguage = + VerificationStartRequestSms.builder() + .setCustom("a custom") + .setReference("a reference") + .setIdentity(NumberIdentity.valueOf("+endpoint")) + .setExpiry("01:02:03") + .setCodeType(SmsCodeType.ALPHANUMERIC) + .setAcceptLanguage("es-ES") + .putExtraOption("my key", "my value") + .build(); public static VerificationStartRequestInternalImpl startVerificationWhatsAppDto = new VerificationStartRequestInternalImpl( diff --git a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/start/response/VerificationStartResponseTest.java b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/start/response/VerificationStartResponseTest.java index 0b083ff70..a942c5001 100644 --- a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/start/response/VerificationStartResponseTest.java +++ b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/start/response/VerificationStartResponseTest.java @@ -2,98 +2,82 @@ import com.adelean.inject.resources.junit.jupiter.GivenJsonResource; import com.adelean.inject.resources.junit.jupiter.TestWithResources; -import com.sinch.sdk.BaseTest; import com.sinch.sdk.core.TestHelpers; +import com.sinch.sdk.domains.verification.adapters.VerificationBaseTest; import com.sinch.sdk.domains.verification.models.dto.v1.start.LinkTest; import com.sinch.sdk.domains.verification.models.v1.SmsCodeType; import com.sinch.sdk.domains.verification.models.v1.WhatsAppCodeType; +import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponse; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseData; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseDataImpl; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseFlashCall; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseFlashCallImpl; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponsePhoneCall; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponsePhoneCallImpl; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseSms; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseSmsImpl; import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseWhatsApp; -import com.sinch.sdk.domains.verification.models.v1.start.response.VerificationStartResponseWhatsAppImpl; -import com.sinch.sdk.domains.verification.models.v1.start.response.internal.VerificationStartResponseInternal; -import com.sinch.sdk.domains.verification.models.v1.start.response.internal.VerificationStartResponseInternalImpl; import org.junit.jupiter.api.Test; @TestWithResources -public class VerificationStartResponseTest extends BaseTest { +public class VerificationStartResponseTest extends VerificationBaseTest { @GivenJsonResource( "/domains/verification/v1/start/response/VerificationStartResponsePhoneCallDto.json") - VerificationStartResponseInternal loadedStartVerificationPhoneCallDto; + VerificationStartResponse loadedStartVerificationPhoneCallDto; - public static VerificationStartResponseInternalImpl expectedStartVerificationPhoneCallDto = - new VerificationStartResponseInternalImpl( - (VerificationStartResponsePhoneCallImpl) - VerificationStartResponsePhoneCall.builder() - .setId("the id") - .setLinks(LinkTest.expectedLinks) - .build()); + public static VerificationStartResponse expectedStartVerificationPhoneCallDto = + VerificationStartResponsePhoneCall.builder() + .setId("the id") + .setLinks(LinkTest.expectedLinks) + .build(); @GivenJsonResource( "/domains/verification/v1/start/response/VerificationStartResponseFlashCallDto.json") - VerificationStartResponseInternal loadedStartVerificationFlashCallDto; - - public static VerificationStartResponseInternalImpl expectedStartVerificationFlashCallDto = - new VerificationStartResponseInternalImpl( - (VerificationStartResponseFlashCallImpl) - VerificationStartResponseFlashCall.builder() - .setId("the id") - .setLinks(LinkTest.expectedLinks) - .setCliFilter("(.*)5312(.*)") - .setInterceptionTimeout(45) - .setReportTimeout(75) - .setDenyCallAfter(0) - .putExtraOption("my key", "my value") - .build()); + VerificationStartResponse loadedStartVerificationFlashCallDto; + + public static VerificationStartResponse expectedStartVerificationFlashCallDto = + VerificationStartResponseFlashCall.builder() + .setId("the id") + .setLinks(LinkTest.expectedLinks) + .setCliFilter("(.*)5312(.*)") + .setInterceptionTimeout(45) + .setReportTimeout(75) + .setDenyCallAfter(0) + .putExtraOption("my key", "my value") + .build(); @GivenJsonResource( "/domains/verification/v1/start/response/VerificationStartResponseDataDto.json") - VerificationStartResponseInternal loadedStartVerificationDataDto; + VerificationStartResponse loadedStartVerificationDataDto; - public static VerificationStartResponseInternalImpl expectedStartVerificationDataDto = - new VerificationStartResponseInternalImpl( - (VerificationStartResponseDataImpl) - VerificationStartResponseData.builder() - .setId("the id") - .setLinks(LinkTest.expectedLinks) - .setTargetUri("target URI") - .build()); + public static VerificationStartResponse expectedStartVerificationDataDto = + VerificationStartResponseData.builder() + .setId("the id") + .setLinks(LinkTest.expectedLinks) + .setTargetUri("target URI") + .build(); @GivenJsonResource("/domains/verification/v1/start/response/VerificationStartResponseSmsDto.json") - VerificationStartResponseInternal loadedStartVerificationSmsDto; - - public static VerificationStartResponseInternalImpl expectedStartVerificationSmsDto = - new VerificationStartResponseInternalImpl( - (VerificationStartResponseSmsImpl) - VerificationStartResponseSms.builder() - .setId("the id") - .setLinks(LinkTest.expectedLinks) - .setTemplate("Your verification code is {{CODE}}. Verified by Sinch") - .setInterceptionTimeout(298) - .setCodeType(SmsCodeType.NUMERIC) - .putExtraOption("my key", "my value") - .build()); + VerificationStartResponse loadedStartVerificationSmsDto; + + public static VerificationStartResponse expectedStartVerificationSmsDto = + VerificationStartResponseSms.builder() + .setId("the id") + .setLinks(LinkTest.expectedLinks) + .setTemplate("Your verification code is {{CODE}}. Verified by Sinch") + .setInterceptionTimeout(298) + .setCodeType(SmsCodeType.NUMERIC) + .putExtraOption("my key", "my value") + .build(); @GivenJsonResource( "/domains/verification/v1/start/response/VerificationStartResponseWhatsAppDto.json") - VerificationStartResponseInternal loadedStartVerificationWhatsAppDto; - - public static VerificationStartResponseInternalImpl expectedStartVerificationWhatsAppDto = - new VerificationStartResponseInternalImpl( - (VerificationStartResponseWhatsAppImpl) - VerificationStartResponseWhatsApp.builder() - .setId("the id") - .setLinks(LinkTest.expectedLinks) - .setCodeType(WhatsAppCodeType.NUMERIC) - .putExtraOption("my key", "my value") - .build()); + VerificationStartResponse loadedStartVerificationWhatsAppDto; + + public static VerificationStartResponse expectedStartVerificationWhatsAppDto = + VerificationStartResponseWhatsApp.builder() + .setId("the id") + .setLinks(LinkTest.expectedLinks) + .setCodeType(WhatsAppCodeType.NUMERIC) + .putExtraOption("my key", "my value") + .build(); @Test void deserializeStartPhoneCall() { diff --git a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/status/VerificationStatusResponseTest.java b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/status/VerificationStatusResponseTest.java index 3fc78a91a..be197d0b8 100644 --- a/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/status/VerificationStatusResponseTest.java +++ b/openapi-contracts/src/test/java/com/sinch/sdk/domains/verification/models/dto/v1/status/VerificationStatusResponseTest.java @@ -12,138 +12,125 @@ import com.sinch.sdk.domains.verification.models.v1.status.StatusCallResult; import com.sinch.sdk.domains.verification.models.v1.status.StatusPrice; import com.sinch.sdk.domains.verification.models.v1.status.StatusSource; +import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse; import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseFlashCall; -import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseFlashCallImpl; import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponsePhoneCall; -import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponsePhoneCallImpl; import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseSms; -import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseSmsImpl; import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseSmsPrice; import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseWhatsApp; -import com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseWhatsAppImpl; -import com.sinch.sdk.domains.verification.models.v1.status.response.internal.VerificationStatusResponseInternal; -import com.sinch.sdk.domains.verification.models.v1.status.response.internal.VerificationStatusResponseInternalImpl; import org.junit.jupiter.api.Test; @TestWithResources public class VerificationStatusResponseTest extends VerificationBaseTest { - public static VerificationStatusResponseInternalImpl expectedVerificationPhoneCallDto = - new VerificationStatusResponseInternalImpl( - (VerificationStatusResponsePhoneCallImpl) - VerificationStatusResponsePhoneCall.builder() - .setId("the id") - .setStatus(VerificationStatus.FAIL) - .setReason(VerificationStatusReason.FRAUD) - .setCallComplete(true) - .setReference("my reference") - .setPrice( - StatusPrice.builder() - .setVerificationPrice( - Price.builder() - .setCurrencyId("verificationPrice currency id") - .setAmount(3.141516F) - .build()) - .setTerminationPrice( - Price.builder() - .setCurrencyId("terminationPrice currency id") - .setAmount(6.626070F) - .build()) - .setBillableDuration(34) + public static VerificationStatusResponse expectedVerificationPhoneCallDto = + VerificationStatusResponsePhoneCall.builder() + .setId("the id") + .setStatus(VerificationStatus.FAIL) + .setReason(VerificationStatusReason.FRAUD) + .setCallComplete(true) + .setReference("my reference") + .setPrice( + StatusPrice.builder() + .setVerificationPrice( + Price.builder() + .setCurrencyId("verificationPrice currency id") + .setAmount(3.141516F) .build()) - .setIdentity(NumberIdentity.valueOf("endpoint value")) - .setCountryId("ES") - .setVerificationTimestamp( - DateUtil.failSafeTimeStampToInstant("2024-05-22T09:38:59.5590437")) - .setCallResult(StatusCallResult.ANSWERED) - .build()); - public static VerificationStatusResponseInternalImpl expectedVerificationFlashCallDto = - new VerificationStatusResponseInternalImpl( - (VerificationStatusResponseFlashCallImpl) - VerificationStatusResponseFlashCall.builder() - .setId("the id") - .setStatus(VerificationStatus.FAIL) - .setReason(VerificationStatusReason.FRAUD) - .setReference("my reference") - .setPrice( - StatusPrice.builder() - .setVerificationPrice( - Price.builder() - .setCurrencyId("verificationPrice currency id") - .setAmount(3.141516F) - .build()) - .setTerminationPrice( - Price.builder() - .setCurrencyId("terminationPrice currency id") - .setAmount(6.626070F) - .build()) - .setBillableDuration(34) + .setTerminationPrice( + Price.builder() + .setCurrencyId("terminationPrice currency id") + .setAmount(6.626070F) .build()) - .setSource(StatusSource.MANUAL) - .setIdentity(NumberIdentity.valueOf("endpoint value")) - .setCountryId("ES") - .setVerificationTimestamp( - DateUtil.failSafeTimeStampToInstant("2024-05-22T09:38:59.5590437")) - .setCallComplete(false) - .setCallResult(StatusCallResult.ANSWERED) - .build()); - public static VerificationStatusResponseInternalImpl expectedVerificationSmsDto = - new VerificationStatusResponseInternalImpl( - (VerificationStatusResponseSmsImpl) - VerificationStatusResponseSms.builder() - .setId("the id") - .setReference("my reference") - .setStatus(VerificationStatus.FAIL) - .setReason(VerificationStatusReason.FRAUD) - .setSource(StatusSource.INTERCEPTED) - .setPrice( - VerificationStatusResponseSmsPrice.builder() - .setVerificationPrice( - Price.builder() - .setCurrencyId("verificationPrice currency id") - .setAmount(3.141516F) - .build()) + .setBillableDuration(34) + .build()) + .setIdentity(NumberIdentity.valueOf("endpoint value")) + .setCountryId("ES") + .setVerificationTimestamp( + DateUtil.failSafeTimeStampToInstant("2024-05-22T09:38:59.5590437")) + .setCallResult(StatusCallResult.ANSWERED) + .build(); + public static VerificationStatusResponse expectedVerificationFlashCallDto = + VerificationStatusResponseFlashCall.builder() + .setId("the id") + .setStatus(VerificationStatus.FAIL) + .setReason(VerificationStatusReason.FRAUD) + .setReference("my reference") + .setPrice( + StatusPrice.builder() + .setVerificationPrice( + Price.builder() + .setCurrencyId("verificationPrice currency id") + .setAmount(3.141516F) .build()) - .setIdentity(NumberIdentity.valueOf("endpoint value")) - .setCountryId("ES") - .setVerificationTimestamp( - DateUtil.failSafeTimeStampToInstant("2024-05-22T09:38:59.5590437")) - .build()); + .setTerminationPrice( + Price.builder() + .setCurrencyId("terminationPrice currency id") + .setAmount(6.626070F) + .build()) + .setBillableDuration(34) + .build()) + .setSource(StatusSource.MANUAL) + .setIdentity(NumberIdentity.valueOf("endpoint value")) + .setCountryId("ES") + .setVerificationTimestamp( + DateUtil.failSafeTimeStampToInstant("2024-05-22T09:38:59.5590437")) + .setCallComplete(false) + .setCallResult(StatusCallResult.ANSWERED) + .build(); + public static VerificationStatusResponse expectedVerificationSmsDto = + VerificationStatusResponseSms.builder() + .setId("the id") + .setReference("my reference") + .setStatus(VerificationStatus.FAIL) + .setReason(VerificationStatusReason.FRAUD) + .setSource(StatusSource.INTERCEPTED) + .setPrice( + VerificationStatusResponseSmsPrice.builder() + .setVerificationPrice( + Price.builder() + .setCurrencyId("verificationPrice currency id") + .setAmount(3.141516F) + .build()) + .build()) + .setIdentity(NumberIdentity.valueOf("endpoint value")) + .setCountryId("ES") + .setVerificationTimestamp( + DateUtil.failSafeTimeStampToInstant("2024-05-22T09:38:59.5590437")) + .build(); - public static VerificationStatusResponseInternalImpl expectedVerificationWhatsAppDto = - new VerificationStatusResponseInternalImpl( - (VerificationStatusResponseWhatsAppImpl) - VerificationStatusResponseWhatsApp.builder() - .setId("the id") - .setReference("my reference") - .setStatus(VerificationStatus.FAIL) - .setReason(VerificationStatusReason.FRAUD) - .setSource(StatusSource.INTERCEPTED) - .setPrice( - VerificationStatusResponseSmsPrice.builder() - .setVerificationPrice( - Price.builder() - .setCurrencyId("verificationPrice currency id") - .setAmount(3.141516F) - .build()) + public static VerificationStatusResponse expectedVerificationWhatsAppDto = + VerificationStatusResponseWhatsApp.builder() + .setId("the id") + .setReference("my reference") + .setStatus(VerificationStatus.FAIL) + .setReason(VerificationStatusReason.FRAUD) + .setSource(StatusSource.INTERCEPTED) + .setPrice( + VerificationStatusResponseSmsPrice.builder() + .setVerificationPrice( + Price.builder() + .setCurrencyId("verificationPrice currency id") + .setAmount(3.141516F) .build()) - .setIdentity(NumberIdentity.valueOf("+33123456789")) - .setCountryId("ES") - .setVerificationTimestamp( - DateUtil.failSafeTimeStampToInstant("2024-05-22T09:38:59.5590437")) - .build()); + .build()) + .setIdentity(NumberIdentity.valueOf("+33123456789")) + .setCountryId("ES") + .setVerificationTimestamp( + DateUtil.failSafeTimeStampToInstant("2024-05-22T09:38:59.5590437")) + .build(); @GivenJsonResource("/domains/verification/v1/status/VerificationStatusResponsePhoneCallDto.json") - VerificationStatusResponseInternal loadedVerificationPhoneCallDto; + VerificationStatusResponse loadedVerificationPhoneCallDto; @GivenJsonResource("/domains/verification/v1/status/VerificationStatusResponseFlashCallDto.json") - VerificationStatusResponseInternal loadedVerificationFlashCallDto; + VerificationStatusResponse loadedVerificationFlashCallDto; @GivenJsonResource("/domains/verification/v1/status/VerificationStatusResponseSmsDto.json") - VerificationStatusResponseInternal loadedVerificationSmsDto; + VerificationStatusResponse loadedVerificationSmsDto; @GivenJsonResource("/domains/verification/v1/status/VerificationStatusResponseWhatsAppDto.json") - VerificationStatusResponseInternal loadedVerificationWhatsAppDto; + VerificationStatusResponse loadedVerificationWhatsAppDto; @Test void deserializePhoneCall() {