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);