diff --git a/README.md b/README.md index cef636c..3b3634a 100644 --- a/README.md +++ b/README.md @@ -24,14 +24,14 @@ And then add the artifact `incognia-api-client` **or** `incognia-api-client-shad com.incognia incognia-api-client - 2.11.0 + 2.12.0 ``` ```xml com.incognia incognia-api-client-shaded - 2.11.0 + 2.12.0 ``` @@ -48,13 +48,13 @@ repositories { And then add the dependency ```gradle dependencies { - implementation 'com.incognia:incognia-api-client:2.11.0' + implementation 'com.incognia:incognia-api-client:2.12.0' } ``` OR ```gradle dependencies { - implementation 'com.incognia:incognia-api-client-shaded:2.11.0' + implementation 'com.incognia:incognia-api-client-shaded:2.12.0' } ``` diff --git a/build.gradle b/build.gradle index d53a48b..1e91ebb 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "com.incognia" -version = "2.11.0" +version = "2.12.0" task createProjectVersionFile { def projectVersionDir = "$projectDir/src/main/java/com/incognia/api" diff --git a/src/main/java/com/incognia/onboarding/SignupAssessment.java b/src/main/java/com/incognia/onboarding/SignupAssessment.java index d65ccd9..3a756f6 100644 --- a/src/main/java/com/incognia/onboarding/SignupAssessment.java +++ b/src/main/java/com/incognia/onboarding/SignupAssessment.java @@ -16,4 +16,6 @@ public class SignupAssessment { Map evidence; String deviceId; String installationId; + String policyId; + Map rawAttributes; } diff --git a/src/main/java/com/incognia/transaction/TransactionAssessment.java b/src/main/java/com/incognia/transaction/TransactionAssessment.java index a8b640b..ca1e732 100644 --- a/src/main/java/com/incognia/transaction/TransactionAssessment.java +++ b/src/main/java/com/incognia/transaction/TransactionAssessment.java @@ -17,4 +17,6 @@ public class TransactionAssessment { Map evidence; String deviceId; String installationId; + String policyId; + Map rawAttributes; } diff --git a/src/test/java/com/incognia/api/IncogniaAPITest.java b/src/test/java/com/incognia/api/IncogniaAPITest.java index c06c1eb..c0cfeb5 100644 --- a/src/test/java/com/incognia/api/IncogniaAPITest.java +++ b/src/test/java/com/incognia/api/IncogniaAPITest.java @@ -71,7 +71,7 @@ void testRegisterSignup_whenDataIsValid() { String token = TokenCreationFixture.createToken(); String requestToken = "request-token"; String accountId = "my-account"; - String policyId = UUID.randomUUID().toString(); + String policyId = "3549270d-cd0f-494a-97ee-97af3d5add04"; String externalId = "external-id"; Address address = AddressFixture.ADDRESS_ADDRESS_LINE; Map map = new HashMap<>(); @@ -96,12 +96,13 @@ void testRegisterSignup_whenDataIsValid() { .build(); SignupAssessment signupAssessment = client.registerSignup(registerSignupRequest); assertThat(signupAssessment) - .extracting("id", "requestId", "riskAssessment", "deviceId") + .extracting("id", "requestId", "riskAssessment", "deviceId", "policyId") .containsExactly( UUID.fromString("5e76a7ca-577c-4f47-a752-9e1e0cee9e49"), UUID.fromString("8afc84a7-f1d4-488d-bd69-36d9a37168b7"), Assessment.LOW_RISK, - "1df6d999-556d-42c3-8c63-357e5d08d95b"); + "1df6d999-556d-42c3-8c63-357e5d08d95b", + "3549270d-cd0f-494a-97ee-97af3d5add04"); Map locationServices = new HashMap<>(); locationServices.put("location_permission_enabled", true); locationServices.put("location_sensors_enabled", true); @@ -129,6 +130,12 @@ void testRegisterSignup_whenDataIsValid() { .source(ReasonSource.LOCAL.getSource()) .build(); assertThat(signupAssessment.getReasons()).containsExactly(expectedReason); + + Map expectedRawAttributes = new HashMap<>(); + expectedRawAttributes.put("random_attribute", 0); + + assertThat(signupAssessment.getRawAttributes()) + .containsExactlyInAnyOrderEntriesOf(expectedRawAttributes); } @Test @@ -138,7 +145,7 @@ void testRegisterSignup_withEmptyAddress() { String token = TokenCreationFixture.createToken(); String requestToken = "request-token"; String accountId = "my-account"; - String policyId = UUID.randomUUID().toString(); + String policyId = "3549270d-cd0f-494a-97ee-97af3d5add04"; String externalId = "external-id"; TokenAwareDispatcher dispatcher = new TokenAwareDispatcher(token, CLIENT_ID, CLIENT_SECRET); @@ -159,12 +166,13 @@ void testRegisterSignup_withEmptyAddress() { .build(); SignupAssessment signupAssessment = client.registerSignup(registerSignupRequest); assertThat(signupAssessment) - .extracting("id", "requestId", "riskAssessment", "deviceId") + .extracting("id", "requestId", "riskAssessment", "deviceId", "policyId") .containsExactly( UUID.fromString("5e76a7ca-577c-4f47-a752-9e1e0cee9e49"), UUID.fromString("8afc84a7-f1d4-488d-bd69-36d9a37168b7"), Assessment.HIGH_RISK, - "1df6d999-556d-42c3-8c63-357e5d08d95b"); + "1df6d999-556d-42c3-8c63-357e5d08d95b", + "3549270d-cd0f-494a-97ee-97af3d5add04"); Map locationServices = new HashMap<>(); locationServices.put("location_permission_enabled", true); locationServices.put("location_sensors_enabled", true); @@ -196,7 +204,7 @@ void testRegisterWebSignup_whenDataIsValid() { String token = TokenCreationFixture.createToken(); String requestToken = "request-token-web-signup"; String accountId = "my-account"; - String policyId = UUID.randomUUID().toString(); + String policyId = "3549270d-cd0f-494a-97ee-97af3d5add04"; String externalId = "external-id"; TokenAwareDispatcher dispatcher = new TokenAwareDispatcher(token, CLIENT_ID, CLIENT_SECRET); @@ -214,12 +222,13 @@ void testRegisterWebSignup_whenDataIsValid() { .build(); SignupAssessment webSignupAssessment = client.registerWebSignup(registerSignupRequest); assertThat(webSignupAssessment) - .extracting("id", "requestId", "riskAssessment", "deviceId") + .extracting("id", "requestId", "riskAssessment", "deviceId", "policyId") .containsExactly( UUID.fromString("5e76a7ca-577c-4f47-a752-9e1e0cee9e49"), UUID.fromString("8afc84a7-f1d4-488d-bd69-36d9a37168b7"), Assessment.LOW_RISK, - "1df6d999-556d-42c3-8c63-357e5d08d95b"); + "1df6d999-556d-42c3-8c63-357e5d08d95b", + "3549270d-cd0f-494a-97ee-97af3d5add04"); Map locationServices = new HashMap<>(); locationServices.put("location_permission_enabled", true); locationServices.put("location_sensors_enabled", true); @@ -248,6 +257,12 @@ void testRegisterWebSignup_whenDataIsValid() { .source(ReasonSource.LOCAL.getSource()) .build(); assertThat(webSignupAssessment.getReasons()).containsExactly(expectedReason); + + Map expectedRawAttributes = new HashMap<>(); + expectedRawAttributes.put("random_attribute", 0); + + assertThat(webSignupAssessment.getRawAttributes()) + .containsExactlyInAnyOrderEntriesOf(expectedRawAttributes); } @Test @@ -674,11 +689,12 @@ void testRegisterLogin_whenAccountIdIsNotValid() { private void assertTransactionAssessment(TransactionAssessment transactionAssessment) { assertThat(transactionAssessment) - .extracting("id", "riskAssessment", "deviceId") + .extracting("id", "riskAssessment", "deviceId", "policyId") .containsExactly( UUID.fromString("dfe1f2ff-8f0d-4ce8-aed1-af8435143044"), Assessment.LOW_RISK, - "1df6d999-556d-42c3-8c63-357e5d08d95b"); + "1df6d999-556d-42c3-8c63-357e5d08d95b", + "3549270d-cd0f-494a-97ee-97af3d5add04"); Map locationServices = new HashMap<>(); locationServices.put("location_permission_enabled", true); locationServices.put("location_sensors_enabled", true); @@ -706,5 +722,11 @@ private void assertTransactionAssessment(TransactionAssessment transactionAssess .source(ReasonSource.LOCAL.getSource()) .build(); assertThat(transactionAssessment.getReasons()).containsExactly(expectedReason); + + Map expectedRawAttributes = new HashMap<>(); + expectedRawAttributes.put("random_attribute", 0); + + assertThat(transactionAssessment.getRawAttributes()) + .containsExactlyInAnyOrderEntriesOf(expectedRawAttributes); } } diff --git a/src/test/resources/post_onboarding_response.json b/src/test/resources/post_onboarding_response.json index ca5da00..9177656 100644 --- a/src/test/resources/post_onboarding_response.json +++ b/src/test/resources/post_onboarding_response.json @@ -3,6 +3,7 @@ "request_id": "8afc84a7-f1d4-488d-bd69-36d9a37168b7", "risk_assessment": "low_risk", "device_id": "1df6d999-556d-42c3-8c63-357e5d08d95b", + "policy_id": "3549270d-cd0f-494a-97ee-97af3d5add04", "reasons": [ { "code": "trusted_location", @@ -26,5 +27,8 @@ "gps_spoofing": false, "from_official_store": true } + }, + "raw_attributes": { + "random_attribute": 0 } } \ No newline at end of file diff --git a/src/test/resources/post_onboarding_response_no_address.json b/src/test/resources/post_onboarding_response_no_address.json index 1d11e47..aa22308 100644 --- a/src/test/resources/post_onboarding_response_no_address.json +++ b/src/test/resources/post_onboarding_response_no_address.json @@ -3,6 +3,7 @@ "request_id": "8afc84a7-f1d4-488d-bd69-36d9a37168b7", "risk_assessment": "high_risk", "device_id": "1df6d999-556d-42c3-8c63-357e5d08d95b", + "policy_id": "3549270d-cd0f-494a-97ee-97af3d5add04", "reasons": [ { "code": "device_integrity", diff --git a/src/test/resources/post_transaction_response.json b/src/test/resources/post_transaction_response.json index b10554d..3ce4cbd 100644 --- a/src/test/resources/post_transaction_response.json +++ b/src/test/resources/post_transaction_response.json @@ -3,6 +3,7 @@ "risk_assessment": "low_risk", "device_id": "1df6d999-556d-42c3-8c63-357e5d08d95b", "unknown_field": "unknown_value", + "policy_id": "3549270d-cd0f-494a-97ee-97af3d5add04", "reasons": [ { "code": "trusted_location", @@ -36,5 +37,8 @@ } ], "location_events_quantity": 62 + }, + "raw_attributes": { + "random_attribute": 0 } } \ No newline at end of file