diff --git a/README.md b/README.md index 8f39bb0..c6dc2e1 100644 --- a/README.md +++ b/README.md @@ -23,14 +23,14 @@ And then add the artifact `incognia-api-client` **or** `incognia-api-client-shad com.incognia incognia-api-client - 3.1.0 + 3.2.0 ``` ```xml com.incognia incognia-api-client-shaded - 3.1.0 + 3.2.0 ``` @@ -47,13 +47,13 @@ repositories { And then add the dependency ```gradle dependencies { - implementation 'com.incognia:incognia-api-client:3.1.0' + implementation 'com.incognia:incognia-api-client:3.2.0' } ``` OR ```gradle dependencies { - implementation 'com.incognia:incognia-api-client-shaded:3.1.0' + implementation 'com.incognia:incognia-api-client-shaded:3.2.0' } ``` diff --git a/build.gradle b/build.gradle index df55d18..f38af33 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "com.incognia" -version = "3.1.0" +version = "3.2.0" task createProjectVersionFile { def projectVersionDir = "$projectDir/src/main/java/com/incognia/api" diff --git a/src/main/java/com/incognia/api/IncogniaAPI.java b/src/main/java/com/incognia/api/IncogniaAPI.java index e3a39ea..6405fc3 100644 --- a/src/main/java/com/incognia/api/IncogniaAPI.java +++ b/src/main/java/com/incognia/api/IncogniaAPI.java @@ -142,6 +142,8 @@ public SignupAssessment registerSignup(RegisterSignupRequest request) throws Inc PostSignupRequestBody.builder() .installationId(request.getInstallationId()) .requestToken(request.getRequestToken()) + .appVersion(request.getAppVersion()) + .appOs(Optional.ofNullable(request.getAppOs()).map(String::toLowerCase).orElse(null)) .addressLine(address.map(Address::getAddressLine).orElse(null)) .structuredAddress(address.map(Address::getStructuredAddress).orElse(null)) .addressCoordinates(address.map(Address::getCoordinates).orElse(null)) @@ -195,6 +197,8 @@ public TransactionAssessment registerLogin(RegisterLoginRequest request) PostTransactionRequestBody.builder() .installationId(request.getInstallationId()) .requestToken(request.getRequestToken()) + .appVersion(request.getAppVersion()) + .appOs(Optional.ofNullable(request.getAppOs()).map(String::toLowerCase).orElse(null)) .accountId(request.getAccountId()) .externalId(request.getExternalId()) .policyId(request.getPolicyId()) @@ -392,6 +396,8 @@ public TransactionAssessment registerPayment(RegisterPaymentRequest request) PostTransactionRequestBody.builder() .installationId(request.getInstallationId()) .requestToken(request.getRequestToken()) + .appVersion(request.getAppVersion()) + .appOs(Optional.ofNullable(request.getAppOs()).map(String::toLowerCase).orElse(null)) .accountId(request.getAccountId()) .externalId(request.getExternalId()) .policyId(request.getPolicyId()) diff --git a/src/main/java/com/incognia/onboarding/PostSignupRequestBody.java b/src/main/java/com/incognia/onboarding/PostSignupRequestBody.java index 0a03c75..68bdde2 100644 --- a/src/main/java/com/incognia/onboarding/PostSignupRequestBody.java +++ b/src/main/java/com/incognia/onboarding/PostSignupRequestBody.java @@ -19,6 +19,8 @@ public class PostSignupRequestBody { String sessionToken; String requestToken; String addressLine; + String appVersion; + String appOs; StructuredAddress structuredAddress; Coordinates addressCoordinates; String externalId; diff --git a/src/main/java/com/incognia/onboarding/RegisterSignupRequest.java b/src/main/java/com/incognia/onboarding/RegisterSignupRequest.java index 4ab0a05..87bed96 100644 --- a/src/main/java/com/incognia/onboarding/RegisterSignupRequest.java +++ b/src/main/java/com/incognia/onboarding/RegisterSignupRequest.java @@ -13,6 +13,8 @@ public class RegisterSignupRequest { String installationId; String requestToken; + String appVersion; + String appOs; @Nullable Address address; String externalId; String policyId; diff --git a/src/main/java/com/incognia/transaction/PostTransactionRequestBody.java b/src/main/java/com/incognia/transaction/PostTransactionRequestBody.java index 46917b1..edc85ed 100644 --- a/src/main/java/com/incognia/transaction/PostTransactionRequestBody.java +++ b/src/main/java/com/incognia/transaction/PostTransactionRequestBody.java @@ -14,6 +14,8 @@ public class PostTransactionRequestBody { String installationId; String requestToken; + String appVersion; + String appOs; String accountId; String sessionToken; String policyId; diff --git a/src/main/java/com/incognia/transaction/login/RegisterLoginRequest.java b/src/main/java/com/incognia/transaction/login/RegisterLoginRequest.java index 6b15fa2..7166d89 100644 --- a/src/main/java/com/incognia/transaction/login/RegisterLoginRequest.java +++ b/src/main/java/com/incognia/transaction/login/RegisterLoginRequest.java @@ -14,6 +14,8 @@ public class RegisterLoginRequest { String accountId; String externalId; String policyId; + String appVersion; + String appOs; Map customProperties; @Getter(AccessLevel.NONE) diff --git a/src/main/java/com/incognia/transaction/payment/RegisterPaymentRequest.java b/src/main/java/com/incognia/transaction/payment/RegisterPaymentRequest.java index 6ea2f35..f3c1885 100644 --- a/src/main/java/com/incognia/transaction/payment/RegisterPaymentRequest.java +++ b/src/main/java/com/incognia/transaction/payment/RegisterPaymentRequest.java @@ -15,6 +15,8 @@ public class RegisterPaymentRequest { String installationId; String requestToken; + String appVersion; + String appOs; String accountId; String externalId; String policyId; diff --git a/src/test/java/com/incognia/api/IncogniaAPITest.java b/src/test/java/com/incognia/api/IncogniaAPITest.java index ad6e40a..6bea73a 100644 --- a/src/test/java/com/incognia/api/IncogniaAPITest.java +++ b/src/test/java/com/incognia/api/IncogniaAPITest.java @@ -154,6 +154,8 @@ void testRegisterSignup_withEmptyAddress() { String accountId = "my-account"; String policyId = UUID.randomUUID().toString(); String externalId = "external-id"; + String appVersion = "1.4.3"; + String appOs = "iOS"; TokenAwareDispatcher dispatcher = new TokenAwareDispatcher(token, CLIENT_ID, CLIENT_SECRET); dispatcher.setExpectedAddressLine(null); @@ -161,6 +163,8 @@ void testRegisterSignup_withEmptyAddress() { dispatcher.setExpectedExternalId(externalId); dispatcher.setExpectedPolicyId(policyId); dispatcher.setExpectedAccountId(accountId); + dispatcher.setExpectedAppVersion(appVersion); + dispatcher.setExpectedAppOs(appOs.toLowerCase()); dispatcher.setExpectedCustomProperties(null); mockServer.setDispatcher(dispatcher); RegisterSignupRequest registerSignupRequest = @@ -169,6 +173,8 @@ void testRegisterSignup_withEmptyAddress() { .accountId(accountId) .policyId(policyId) .externalId(externalId) + .appVersion(appVersion) + .appOs(appOs) .customProperties(null) .build(); SignupAssessment signupAssessment = client.registerSignup(registerSignupRequest); @@ -301,6 +307,8 @@ void testRegisterLogin_whenDataIsValid(Boolean eval) { String token = TokenCreationFixture.createToken(); String requestToken = "request-token"; String accountId = "account-id"; + String appVersion = "1.4.3"; + String appOs = "Android"; String externalId = "external-id"; String policyId = "policy-id"; Map map = new HashMap<>(); @@ -311,6 +319,8 @@ void testRegisterLogin_whenDataIsValid(Boolean eval) { PostTransactionRequestBody.builder() .requestToken(requestToken) .externalId(externalId) + .appVersion(appVersion) + .appOs(appOs.toLowerCase()) .accountId(accountId) .type("login") .addresses(null) @@ -323,6 +333,8 @@ void testRegisterLogin_whenDataIsValid(Boolean eval) { RegisterLoginRequest.builder() .requestToken(requestToken) .accountId(accountId) + .appVersion(appVersion) + .appOs(appOs) .externalId(externalId) .evaluateTransaction(eval) .policyId(policyId) @@ -413,6 +425,8 @@ void testRegisterPayment_whenDataIsValid(Boolean eval) { String token = TokenCreationFixture.createToken(); String requestToken = "request-token"; String accountId = "account-id"; + String appVersion = "appVersion"; + String appOs = "iOS"; String externalId = "external-id"; String policyId = "policy-id"; Address address = @@ -456,6 +470,8 @@ void testRegisterPayment_whenDataIsValid(Boolean eval) { RegisterPaymentRequest.builder() .requestToken(requestToken) .accountId(accountId) + .appVersion(appVersion) + .appOs(appOs) .externalId(externalId) .policyId(policyId) .addresses(Collections.singletonMap(AddressType.SHIPPING, address)) @@ -469,6 +485,8 @@ void testRegisterPayment_whenDataIsValid(Boolean eval) { .externalId(externalId) .policyId(policyId) .accountId(accountId) + .appVersion(appVersion) + .appOs(appOs.toLowerCase()) .type("payment") .addresses(transactionAddresses) .paymentValue(paymentValue) diff --git a/src/test/java/com/incognia/api/clients/TokenAwareDispatcher.java b/src/test/java/com/incognia/api/clients/TokenAwareDispatcher.java index f04936f..1d966c4 100644 --- a/src/test/java/com/incognia/api/clients/TokenAwareDispatcher.java +++ b/src/test/java/com/incognia/api/clients/TokenAwareDispatcher.java @@ -36,6 +36,8 @@ public class TokenAwareDispatcher extends Dispatcher { @Setter private String expectedInstallationId; @Setter private String expectedExternalId; @Setter private String expectedAccountId; + @Setter private String expectedAppVersion; + @Setter private String expectedAppOs; @Setter private String expectedPolicyId; @Setter private String expectedAddressLine; @Setter private Map expectedCustomProperties; @@ -138,6 +140,8 @@ private MockResponse handlePostSignup(@NotNull RecordedRequest request) assertThat(postSignupRequestBody.getInstallationId()).isEqualTo(expectedInstallationId); assertThat(postSignupRequestBody.getRequestToken()).isEqualTo(expectedRequestToken); assertThat(postSignupRequestBody.getAccountId()).isEqualTo(expectedAccountId); + assertThat(postSignupRequestBody.getAppVersion()).isEqualTo(expectedAppVersion); + assertThat(postSignupRequestBody.getAppOs()).isEqualTo(expectedAppOs); assertThat(postSignupRequestBody.getExternalId()).isEqualTo(expectedExternalId); assertThat(postSignupRequestBody.getPolicyId()).isEqualTo(expectedPolicyId); assertThat(postSignupRequestBody.getAddressLine()).isEqualTo(expectedAddressLine);