From 05cfc2ba9a24f7300ab3e4f1bd84eee2d49da297 Mon Sep 17 00:00:00 2001 From: Natasha Sehgal Date: Wed, 25 Aug 2021 15:49:56 -0700 Subject: [PATCH 1/4] v206 --- CHANGES.MD | 4 ++++ README.md | 6 ++--- build.gradle | 3 +-- .../java/com/siftscience/EventRequest.java | 2 +- .../java/com/siftscience/LabelRequest.java | 2 +- .../java/com/siftscience/ScoreRequest.java | 2 +- .../java/com/siftscience/UnlabelRequest.java | 2 +- .../com/siftscience/UserScoreRequest.java | 2 +- .../siftscience/AddItemToCartEventTest.java | 2 +- .../siftscience/AddPromotionEventTest.java | 2 +- .../BaseAppBrowserSiteBrandFieldSetTest.java | 2 +- .../com/siftscience/ChargebackEventTest.java | 2 +- .../com/siftscience/ContentEventTest.java | 24 +++++++++---------- .../siftscience/ContentStatusEventTest.java | 2 +- .../siftscience/CreateAccountEventTest.java | 2 +- .../CreateOrderEventWithBookingsTest.java | 2 +- .../CreateOrderEventWithItemsTest.java | 2 +- ...entWithSiteBrandOrderedFromFieldsTest.java | 2 +- .../java/com/siftscience/CustomEventTest.java | 2 +- .../com/siftscience/FlagContentEventTest.java | 2 +- src/test/java/com/siftscience/LabelTest.java | 2 +- .../LinkSessionToUserEventTest.java | 2 +- .../java/com/siftscience/LoginEventTest.java | 4 ++-- .../java/com/siftscience/LogoutEventTest.java | 2 +- .../com/siftscience/OrderStatusEventTest.java | 2 +- .../RemoveItemFromCartEventTest.java | 2 +- src/test/java/com/siftscience/ScoresTest.java | 6 ++--- .../SecurityNotificationEventTest.java | 2 +- .../com/siftscience/TransactionEventTest.java | 6 +---- .../java/com/siftscience/UnlabelTest.java | 4 ++-- .../siftscience/UpdateAccountEventTest.java | 2 +- .../UpdateOrderEventWithBookingsTest.java | 2 +- .../UpdateOrderEventWithItemsTest.java | 2 +- ...entWithSiteBrandOrderedFromFieldsTest.java | 2 +- .../siftscience/UpdatePasswordEventTest.java | 2 +- .../java/com/siftscience/UserScoreTest.java | 8 +++---- .../siftscience/VerificationEventTest.java | 2 +- .../com/siftscience/WorkflowStatusTest.java | 2 +- 38 files changed, 61 insertions(+), 62 deletions(-) diff --git a/CHANGES.MD b/CHANGES.MD index 5eed857c..655bf5ac 100644 --- a/CHANGES.MD +++ b/CHANGES.MD @@ -1,3 +1,7 @@ +3.5.0 (2021-08-24) +================= +- V206 adds fintech fields. + 3.4.0 (2020-05-05) ================= - Add support for `$decline_category` field to `$transaction` event diff --git a/README.md b/README.md index c98de53a..21d6fdd2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![CircleCI](https://circleci.com/gh/SiftScience/sift-java.svg?style=svg)](https://circleci.com/gh/SiftScience/sift-java) -The official Java bindings for the latest version (v205) of the [Sift API](https://sift.com/developers/docs/java/apis-overview). +The official Java bindings for the latest version (v206) of the [Sift API](https://sift.com/developers/docs/java/apis-overview). ## Requirements Java 1.7 or later. @@ -13,13 +13,13 @@ Java 1.7 or later. com.siftscience sift-java - 3.4.0 + 3.5.0 ``` ### Gradle ``` dependencies { - compile 'com.siftscience:sift-java:3.4.0' + compile 'com.siftscience:sift-java:3.5.0' } ``` ### Other diff --git a/build.gradle b/build.gradle index 169cc895..f0b37a6b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,10 @@ - apply plugin: 'java' apply plugin: 'maven-publish' apply plugin: 'signing' apply plugin: 'java-library-distribution' group = 'com.siftscience' -version = '3.4.0' +version = '3.5.0' repositories { mavenCentral() diff --git a/src/main/java/com/siftscience/EventRequest.java b/src/main/java/com/siftscience/EventRequest.java index 0e5f5cfe..ddbc8ad3 100644 --- a/src/main/java/com/siftscience/EventRequest.java +++ b/src/main/java/com/siftscience/EventRequest.java @@ -32,7 +32,7 @@ EventResponse buildResponse(Response response, FieldSet requestFields) @Override protected HttpUrl path(HttpUrl baseUrl) { HttpUrl.Builder builder = baseUrl.newBuilder() - .addPathSegment("v205").addPathSegment("events"); + .addPathSegment("v206").addPathSegment("events"); if (isWorkflowStatus) { builder.addQueryParameter("return_workflow_status", "true"); diff --git a/src/main/java/com/siftscience/LabelRequest.java b/src/main/java/com/siftscience/LabelRequest.java index bc44e562..82572c37 100644 --- a/src/main/java/com/siftscience/LabelRequest.java +++ b/src/main/java/com/siftscience/LabelRequest.java @@ -19,7 +19,7 @@ public class LabelRequest extends SiftRequest { @Override protected HttpUrl path(HttpUrl baseUrl) { return baseUrl.newBuilder() - .addPathSegment("v205") + .addPathSegment("v206") .addPathSegment("users") .addPathSegment(((LabelFieldSet)fieldSet).getUserId()) .addPathSegment("labels") diff --git a/src/main/java/com/siftscience/ScoreRequest.java b/src/main/java/com/siftscience/ScoreRequest.java index 1c716358..1517e347 100644 --- a/src/main/java/com/siftscience/ScoreRequest.java +++ b/src/main/java/com/siftscience/ScoreRequest.java @@ -38,7 +38,7 @@ ScoreResponse buildResponse(Response response, FieldSet requestFields) @Override protected HttpUrl path(HttpUrl baseUrl) { ScoreFieldSet scoreFieldSet = (ScoreFieldSet)fieldSet; - HttpUrl.Builder builder = baseUrl.newBuilder().addPathSegment("v205"); + HttpUrl.Builder builder = baseUrl.newBuilder().addPathSegment("v206"); builder.addPathSegment("score").addPathSegment(scoreFieldSet.getUserId()) .addQueryParameter("api_key", scoreFieldSet.getApiKey()); if (scoreFieldSet.getAbuseTypes() != null && scoreFieldSet.getAbuseTypes().size() > 0) { diff --git a/src/main/java/com/siftscience/UnlabelRequest.java b/src/main/java/com/siftscience/UnlabelRequest.java index bf273ce1..42c2cfda 100644 --- a/src/main/java/com/siftscience/UnlabelRequest.java +++ b/src/main/java/com/siftscience/UnlabelRequest.java @@ -23,7 +23,7 @@ public class UnlabelRequest extends SiftRequest { protected HttpUrl path(HttpUrl baseUrl) { UnlabelFieldSet unlabelFields = (UnlabelFieldSet)fieldSet; HttpUrl.Builder builder = baseUrl.newBuilder() - .addPathSegment("v205") + .addPathSegment("v206") .addPathSegment("users") .addPathSegment(unlabelFields.getUserId()) .addPathSegment("labels"); diff --git a/src/main/java/com/siftscience/UserScoreRequest.java b/src/main/java/com/siftscience/UserScoreRequest.java index 8ef5f60d..4c754259 100644 --- a/src/main/java/com/siftscience/UserScoreRequest.java +++ b/src/main/java/com/siftscience/UserScoreRequest.java @@ -48,7 +48,7 @@ EntityScoreResponse buildResponse(Response response, FieldSet requestFields) @Override protected HttpUrl path(HttpUrl baseUrl) { UserScoreFieldSet userScoreFieldSet = (UserScoreFieldSet)fieldSet; - HttpUrl.Builder builder = baseUrl.newBuilder().addPathSegment("v205"); + HttpUrl.Builder builder = baseUrl.newBuilder().addPathSegment("v206"); builder.addPathSegment("users") .addPathSegment(userScoreFieldSet.getUserId()) .addPathSegment("score") diff --git a/src/test/java/com/siftscience/AddItemToCartEventTest.java b/src/test/java/com/siftscience/AddItemToCartEventTest.java index 708d15bd..bee838ae 100644 --- a/src/test/java/com/siftscience/AddItemToCartEventTest.java +++ b/src/test/java/com/siftscience/AddItemToCartEventTest.java @@ -66,7 +66,7 @@ public void testAddItemToCart() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/AddPromotionEventTest.java b/src/test/java/com/siftscience/AddPromotionEventTest.java index b7570bae..ccae9d1d 100644 --- a/src/test/java/com/siftscience/AddPromotionEventTest.java +++ b/src/test/java/com/siftscience/AddPromotionEventTest.java @@ -69,7 +69,7 @@ public void testAddPromotion() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/BaseAppBrowserSiteBrandFieldSetTest.java b/src/test/java/com/siftscience/BaseAppBrowserSiteBrandFieldSetTest.java index 430c1698..d1754224 100644 --- a/src/test/java/com/siftscience/BaseAppBrowserSiteBrandFieldSetTest.java +++ b/src/test/java/com/siftscience/BaseAppBrowserSiteBrandFieldSetTest.java @@ -218,7 +218,7 @@ private void test(TestFieldSet t, String expectedRequestBody) throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/ChargebackEventTest.java b/src/test/java/com/siftscience/ChargebackEventTest.java index 466950a3..386d95ee 100644 --- a/src/test/java/com/siftscience/ChargebackEventTest.java +++ b/src/test/java/com/siftscience/ChargebackEventTest.java @@ -57,7 +57,7 @@ public void testChargeback() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/ContentEventTest.java b/src/test/java/com/siftscience/ContentEventTest.java index ac4e2831..cdefe88f 100644 --- a/src/test/java/com/siftscience/ContentEventTest.java +++ b/src/test/java/com/siftscience/ContentEventTest.java @@ -110,7 +110,7 @@ public void testCreateComment() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -236,7 +236,7 @@ public void testCreateListing() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -318,7 +318,7 @@ public void testCreateMessage() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -417,7 +417,7 @@ public void testCreateProfile() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -533,7 +533,7 @@ public void testCreatePost() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -633,7 +633,7 @@ public void testCreateReview() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -719,7 +719,7 @@ public void testUpdateComment() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -845,7 +845,7 @@ public void testUpdateListing() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -931,7 +931,7 @@ public void testUpdateMessage() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -1030,7 +1030,7 @@ public void testUpdateProfile() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -1146,7 +1146,7 @@ public void testUpdatePost() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -1246,7 +1246,7 @@ public void testUpdateReview() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/ContentStatusEventTest.java b/src/test/java/com/siftscience/ContentStatusEventTest.java index 2980fb04..7287923f 100644 --- a/src/test/java/com/siftscience/ContentStatusEventTest.java +++ b/src/test/java/com/siftscience/ContentStatusEventTest.java @@ -53,7 +53,7 @@ public void testContentStatus() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/CreateAccountEventTest.java b/src/test/java/com/siftscience/CreateAccountEventTest.java index 19f0bd6f..aebca028 100644 --- a/src/test/java/com/siftscience/CreateAccountEventTest.java +++ b/src/test/java/com/siftscience/CreateAccountEventTest.java @@ -134,7 +134,7 @@ public void testCreateAccount() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/CreateOrderEventWithBookingsTest.java b/src/test/java/com/siftscience/CreateOrderEventWithBookingsTest.java index 56eb8056..ea4423bf 100644 --- a/src/test/java/com/siftscience/CreateOrderEventWithBookingsTest.java +++ b/src/test/java/com/siftscience/CreateOrderEventWithBookingsTest.java @@ -206,7 +206,7 @@ public void testCreateOrderEvent() throws JSONException, IOException, // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/CreateOrderEventWithItemsTest.java b/src/test/java/com/siftscience/CreateOrderEventWithItemsTest.java index b64a5d98..08bb4c79 100644 --- a/src/test/java/com/siftscience/CreateOrderEventWithItemsTest.java +++ b/src/test/java/com/siftscience/CreateOrderEventWithItemsTest.java @@ -174,7 +174,7 @@ public void testCreateOrderEvent() throws JSONException, IOException, // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/CreateOrderEventWithSiteBrandOrderedFromFieldsTest.java b/src/test/java/com/siftscience/CreateOrderEventWithSiteBrandOrderedFromFieldsTest.java index 41d76d39..182d86ad 100644 --- a/src/test/java/com/siftscience/CreateOrderEventWithSiteBrandOrderedFromFieldsTest.java +++ b/src/test/java/com/siftscience/CreateOrderEventWithSiteBrandOrderedFromFieldsTest.java @@ -127,7 +127,7 @@ public void testCreateOrderEvent() throws JSONException, IOException, // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/CustomEventTest.java b/src/test/java/com/siftscience/CustomEventTest.java index 0efaebd9..63d65304 100644 --- a/src/test/java/com/siftscience/CustomEventTest.java +++ b/src/test/java/com/siftscience/CustomEventTest.java @@ -59,7 +59,7 @@ public void testCustomEvent() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/FlagContentEventTest.java b/src/test/java/com/siftscience/FlagContentEventTest.java index a06a0ccd..22fa6109 100644 --- a/src/test/java/com/siftscience/FlagContentEventTest.java +++ b/src/test/java/com/siftscience/FlagContentEventTest.java @@ -54,7 +54,7 @@ public void testFlagContent() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/LabelTest.java b/src/test/java/com/siftscience/LabelTest.java index 885af2c4..40540009 100644 --- a/src/test/java/com/siftscience/LabelTest.java +++ b/src/test/java/com/siftscience/LabelTest.java @@ -58,7 +58,7 @@ public void testLabel() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/users/billy_jones_301/labels", request1.getPath()); + Assert.assertEquals("/v206/users/billy_jones_301/labels", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/LinkSessionToUserEventTest.java b/src/test/java/com/siftscience/LinkSessionToUserEventTest.java index 63ca5f98..48a99164 100644 --- a/src/test/java/com/siftscience/LinkSessionToUserEventTest.java +++ b/src/test/java/com/siftscience/LinkSessionToUserEventTest.java @@ -50,7 +50,7 @@ public void testLinkSessionToUser() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/LoginEventTest.java b/src/test/java/com/siftscience/LoginEventTest.java index ea08e754..fc5c1953 100644 --- a/src/test/java/com/siftscience/LoginEventTest.java +++ b/src/test/java/com/siftscience/LoginEventTest.java @@ -72,7 +72,7 @@ public void testLoginWithApp() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -130,7 +130,7 @@ public void testLoginWithBrowswer() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/LogoutEventTest.java b/src/test/java/com/siftscience/LogoutEventTest.java index 7a535422..027ebcba 100644 --- a/src/test/java/com/siftscience/LogoutEventTest.java +++ b/src/test/java/com/siftscience/LogoutEventTest.java @@ -48,7 +48,7 @@ public void testLogout() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/OrderStatusEventTest.java b/src/test/java/com/siftscience/OrderStatusEventTest.java index 001e23ca..e86f9178 100644 --- a/src/test/java/com/siftscience/OrderStatusEventTest.java +++ b/src/test/java/com/siftscience/OrderStatusEventTest.java @@ -63,7 +63,7 @@ public void testOrderStatus() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/RemoveItemFromCartEventTest.java b/src/test/java/com/siftscience/RemoveItemFromCartEventTest.java index 062c4d12..bfa97f15 100644 --- a/src/test/java/com/siftscience/RemoveItemFromCartEventTest.java +++ b/src/test/java/com/siftscience/RemoveItemFromCartEventTest.java @@ -65,7 +65,7 @@ public void testRemoveItemFromCart() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/ScoresTest.java b/src/test/java/com/siftscience/ScoresTest.java index 4415d537..f7293e8f 100644 --- a/src/test/java/com/siftscience/ScoresTest.java +++ b/src/test/java/com/siftscience/ScoresTest.java @@ -89,7 +89,7 @@ public void testSynchronousScores() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events?return_score=true&abuse_types=" + + Assert.assertEquals("/v206/events?return_score=true&abuse_types=" + "payment_abuse,promotion_abuse", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); @@ -175,7 +175,7 @@ public void testSynchronousScoresWithNoAbuseTypes() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events?return_score=true", request1.getPath()); + Assert.assertEquals("/v206/events?return_score=true", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -252,7 +252,7 @@ public void testScoresAPI() throws IOException, InterruptedException, JSONExcept // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("GET", request1.getMethod()); - Assert.assertEquals("/v205/score/billy_jones_301?api_key=YOUR_API_KEY&" + + Assert.assertEquals("/v206/score/billy_jones_301?api_key=YOUR_API_KEY&" + "abuse_types=payment_abuse,promotion_abuse", request1.getPath()); // Verify the response. diff --git a/src/test/java/com/siftscience/SecurityNotificationEventTest.java b/src/test/java/com/siftscience/SecurityNotificationEventTest.java index 4df2a14e..aa9e16b2 100644 --- a/src/test/java/com/siftscience/SecurityNotificationEventTest.java +++ b/src/test/java/com/siftscience/SecurityNotificationEventTest.java @@ -64,7 +64,7 @@ public void testSecurityNotification() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/TransactionEventTest.java b/src/test/java/com/siftscience/TransactionEventTest.java index 4b05234b..1507fba0 100644 --- a/src/test/java/com/siftscience/TransactionEventTest.java +++ b/src/test/java/com/siftscience/TransactionEventTest.java @@ -128,7 +128,7 @@ public void testTransactionEvent() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -136,10 +136,6 @@ public void testTransactionEvent() throws Exception { Assert.assertEquals(0, (int) siftResponse.getBody().getStatus()); JSONAssert.assertEquals(response.getBody().readUtf8(), siftResponse.getBody().toJson(), true); -// EventResponseBody ff = siftResponse.getBody(); -// siftResponse.getRequestBody() -// siftResponse.getBody().getApiErrorMessage(); -// siftResponse.getApiErrorMessage(); server.shutdown(); } diff --git a/src/test/java/com/siftscience/UnlabelTest.java b/src/test/java/com/siftscience/UnlabelTest.java index c3831ec2..661f3004 100644 --- a/src/test/java/com/siftscience/UnlabelTest.java +++ b/src/test/java/com/siftscience/UnlabelTest.java @@ -36,7 +36,7 @@ public void testUnlabel() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("DELETE", request1.getMethod()); - Assert.assertEquals("/v205/users/billy_jones_301/labels?api_key=YOUR_API_KEY" + + Assert.assertEquals("/v206/users/billy_jones_301/labels?api_key=YOUR_API_KEY" + "&abuse_type=payment_abuse", request1.getPath()); // Verify the response. @@ -70,7 +70,7 @@ public void testUnlabelAllAbuseTypes() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("DELETE", request1.getMethod()); - Assert.assertEquals("/v205/users/billy_jones_301/labels?api_key=YOUR_API_KEY", + Assert.assertEquals("/v206/users/billy_jones_301/labels?api_key=YOUR_API_KEY", request1.getPath()); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdateAccountEventTest.java b/src/test/java/com/siftscience/UpdateAccountEventTest.java index 41f7ea2c..19291f9e 100644 --- a/src/test/java/com/siftscience/UpdateAccountEventTest.java +++ b/src/test/java/com/siftscience/UpdateAccountEventTest.java @@ -106,7 +106,7 @@ public void testUpdateAccount() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdateOrderEventWithBookingsTest.java b/src/test/java/com/siftscience/UpdateOrderEventWithBookingsTest.java index 4850abed..1cf18c57 100644 --- a/src/test/java/com/siftscience/UpdateOrderEventWithBookingsTest.java +++ b/src/test/java/com/siftscience/UpdateOrderEventWithBookingsTest.java @@ -205,7 +205,7 @@ public void testUpdateOrderEvent() throws JSONException, IOException, Interrupte // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdateOrderEventWithItemsTest.java b/src/test/java/com/siftscience/UpdateOrderEventWithItemsTest.java index 3e5299c4..c2403d84 100644 --- a/src/test/java/com/siftscience/UpdateOrderEventWithItemsTest.java +++ b/src/test/java/com/siftscience/UpdateOrderEventWithItemsTest.java @@ -174,7 +174,7 @@ public void testUpdateOrderEvent() throws JSONException, IOException, Interrupte // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdateOrderEventWithSiteBrandOrderedFromFieldsTest.java b/src/test/java/com/siftscience/UpdateOrderEventWithSiteBrandOrderedFromFieldsTest.java index 5f52ded0..6ea1c167 100644 --- a/src/test/java/com/siftscience/UpdateOrderEventWithSiteBrandOrderedFromFieldsTest.java +++ b/src/test/java/com/siftscience/UpdateOrderEventWithSiteBrandOrderedFromFieldsTest.java @@ -127,7 +127,7 @@ public void testUpdateOrderEvent() throws JSONException, IOException, // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdatePasswordEventTest.java b/src/test/java/com/siftscience/UpdatePasswordEventTest.java index 71bbeff0..26cd4a7d 100644 --- a/src/test/java/com/siftscience/UpdatePasswordEventTest.java +++ b/src/test/java/com/siftscience/UpdatePasswordEventTest.java @@ -76,7 +76,7 @@ public void testUpdatePassword() throws Exception { //Verify the request RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UserScoreTest.java b/src/test/java/com/siftscience/UserScoreTest.java index 6a7bfebb..349f457a 100644 --- a/src/test/java/com/siftscience/UserScoreTest.java +++ b/src/test/java/com/siftscience/UserScoreTest.java @@ -80,7 +80,7 @@ public void testGetUserScoreAPI() throws IOException, InterruptedException, .setRescoreUser(false); testUserScore(userScoreFieldSet, - "/v205/users/billy_jones_301/score?api_key=YOUR_API_KEY"); + "/v206/users/billy_jones_301/score?api_key=YOUR_API_KEY"); } @Test @@ -96,7 +96,7 @@ public void testGetUserScoreAPIWithAbuseTypes() throws IOException, InterruptedE .setRescoreUser(false); testUserScore(userScoreFieldSet, - "/v205/users/billy_jones_301/score?api_key=YOUR_API_KEY&" + + "/v206/users/billy_jones_301/score?api_key=YOUR_API_KEY&" + "abuse_types=payment_abuse,promotion_abuse"); } @@ -109,7 +109,7 @@ public void testRescoreUserScoreAPI() throws IOException, InterruptedException, .setRescoreUser(true); testUserScore(userScoreFieldSet, - "/v205/users/billy_jones_301/score?api_key=YOUR_API_KEY"); + "/v206/users/billy_jones_301/score?api_key=YOUR_API_KEY"); } @Test @@ -125,7 +125,7 @@ public void testRescoreUserScoreAPIWithAbuseTypes() throws IOException, Interrup .setRescoreUser(true); testUserScore(userScoreFieldSet, - "/v205/users/billy_jones_301/score?api_key=YOUR_API_KEY&" + + "/v206/users/billy_jones_301/score?api_key=YOUR_API_KEY&" + "abuse_types=payment_abuse,promotion_abuse"); } diff --git a/src/test/java/com/siftscience/VerificationEventTest.java b/src/test/java/com/siftscience/VerificationEventTest.java index 5b07b9f1..9b7d949d 100644 --- a/src/test/java/com/siftscience/VerificationEventTest.java +++ b/src/test/java/com/siftscience/VerificationEventTest.java @@ -87,7 +87,7 @@ public void testVerification() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/WorkflowStatusTest.java b/src/test/java/com/siftscience/WorkflowStatusTest.java index d7e0ea5e..f836fb58 100644 --- a/src/test/java/com/siftscience/WorkflowStatusTest.java +++ b/src/test/java/com/siftscience/WorkflowStatusTest.java @@ -136,7 +136,7 @@ public void testSynchronousWorkflowStatus() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events?return_workflow_status=true&abuse_types=" + + Assert.assertEquals("/v206/events?return_workflow_status=true&abuse_types=" + "payment_abuse,promotion_abuse", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); From e5b2cc16ac4c0cea45699b1a4d3d471ff692ccb5 Mon Sep 17 00:00:00 2001 From: Natasha Sehgal Date: Wed, 25 Aug 2021 15:55:06 -0700 Subject: [PATCH 2/4] add to for v206 --- CHANGES.MD | 1 + src/main/java/com/siftscience/model/Ach.java | 48 +++++++ .../com/siftscience/model/PaymentMethod.java | 10 ++ src/test/java/com/siftscience/TestUtils.java | 11 ++ .../com/siftscience/TransactionEventTest.java | 131 ++++++++++++++++++ 5 files changed, 201 insertions(+) create mode 100644 src/main/java/com/siftscience/model/Ach.java diff --git a/CHANGES.MD b/CHANGES.MD index 655bf5ac..62b5f706 100644 --- a/CHANGES.MD +++ b/CHANGES.MD @@ -1,6 +1,7 @@ 3.5.0 (2021-08-24) ================= - V206 adds fintech fields. +- Add support for `$ach` complex field to `$payment_method` complex field 3.4.0 (2020-05-05) ================= diff --git a/src/main/java/com/siftscience/model/Ach.java b/src/main/java/com/siftscience/model/Ach.java new file mode 100644 index 00000000..35edcfb5 --- /dev/null +++ b/src/main/java/com/siftscience/model/Ach.java @@ -0,0 +1,48 @@ +package com.siftscience.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class Ach { + @Expose @SerializedName("$ach_type") private String achType; + @Expose @SerializedName("$routing_number") private String routingNumber; + @Expose @SerializedName("$account_number") private String accountNumber; + @Expose @SerializedName("$account_holder_name") private String accountHolderName; + + public String getAchType() { + return achType; + } + + public Ach setAchType(String achType) { + this.achType = achType; + return this; + } + + public String getRoutingNumber() { + return routingNumber; + } + + public Ach setRoutingNumber(String routingNumber) { + this.routingNumber = routingNumber; + return this; + } + + public String getAccountNumber() { + return accountNumber; + } + + public Ach setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + return this; + } + + public String getAccountHolderName() { + return accountHolderName; + } + + public Ach setAccountHolderName(String accountHolderName) { + this.accountHolderName = accountHolderName; + return this; + } + +} diff --git a/src/main/java/com/siftscience/model/PaymentMethod.java b/src/main/java/com/siftscience/model/PaymentMethod.java index e95e87eb..60b6d9ca 100644 --- a/src/main/java/com/siftscience/model/PaymentMethod.java +++ b/src/main/java/com/siftscience/model/PaymentMethod.java @@ -26,6 +26,7 @@ public class PaymentMethod { @Expose @SerializedName("$stripe_address_zip_check") private String stripeAddressZipCheck; @Expose @SerializedName("$stripe_funding") private String stripeFunding; @Expose @SerializedName("$stripe_brand") private String stripeBrand; + @Expose @SerializedName("$ach") private Ach ach; public String getPaymentType() { return paymentType; @@ -215,4 +216,13 @@ public PaymentMethod setStripeBrand(String stripeBrand) { this.stripeBrand = stripeBrand; return this; } + + public Ach getAch() { + return ach; + } + + public PaymentMethod setAch(Ach ach) { + this.ach = ach; + return this; + } } diff --git a/src/test/java/com/siftscience/TestUtils.java b/src/test/java/com/siftscience/TestUtils.java index 3afc6ea2..f5fa3621 100644 --- a/src/test/java/com/siftscience/TestUtils.java +++ b/src/test/java/com/siftscience/TestUtils.java @@ -1,5 +1,6 @@ package com.siftscience; +import com.siftscience.model.Ach; import com.siftscience.model.Address; import com.siftscience.model.Booking; import com.siftscience.model.CreditPoint; @@ -66,6 +67,16 @@ static PaymentMethod samplePaymentMethod2() { .setCardLast4("4444"); } + static PaymentMethod samplePaymentMethod3() { + return new PaymentMethod() + .setAch(new Ach() + .setAchType("$credit") + .setRoutingNumber("072403005") + .setAccountNumber("12345") + .setAccountHolderName("Jane Doe") + ); + } + static List sampleTags1() { List tags = new ArrayList<>(); tags.add("Popcorn"); diff --git a/src/test/java/com/siftscience/TransactionEventTest.java b/src/test/java/com/siftscience/TransactionEventTest.java index 1507fba0..93d88fb1 100644 --- a/src/test/java/com/siftscience/TransactionEventTest.java +++ b/src/test/java/com/siftscience/TransactionEventTest.java @@ -139,4 +139,135 @@ public void testTransactionEvent() throws Exception { server.shutdown(); } + + @Test + public void testTransactionEventWithAch() throws Exception { + String expectedRequestBody = "{\n" + + " \"$type\" : \"$transaction\",\n" + + " \"$api_key\" : \"YOUR_API_KEY\",\n" + + " \"$user_id\" : \"billy_jones_301\",\n" + + " \"$amount\" : 506790000,\n" + + " \"$currency_code\" : \"USD\",\n" + + "\n" + + " \"$user_email\" : \"bill@gmail.com\",\n" + + " \"$transaction_type\" : \"$sale\",\n" + + " \"$transaction_status\" : \"$failure\",\n" + + " \"$order_id\" : \"ORDER-123124124\",\n" + + " \"$transaction_id\" : \"719637215\",\n" + + " \"$decline_category\" : \"$lost\",\n" + + " \"$site_country\": \"US\",\n" + + " \"$site_domain\": \"sift.com\",\n" + + " \"$brand_name\": \"sift\",\n" + + " \"$ordered_from\" : {\n" + + " \"$store_id\" : \"123\",\n" + + " \"$store_address\" : {\n" + + " \"$address_1\" : \"2100 Main Street\",\n" + + " \"$address_2\" : \"Apt 3B\",\n" + + " \"$city\" : \"New London\",\n" + + " \"$country\" : \"US\",\n" + + " \"$name\" : \"Bill Jones\",\n" + + " \"$phone\" : \"1-415-555-6040\",\n" + + " \"$region\" : \"New Hampshire\",\n" + + " \"$zipcode\" : \"03257\"\n" + + " }\n" + + " },\n" + + "\n" + + " \"$billing_address\" : {\n" + + " \"$name\" : \"Bill Jones\",\n" + + " \"$phone\" : \"1-415-555-6041\",\n" + + " \"$address_1\" : \"2100 Main Street\",\n" + + " \"$address_2\" : \"Apt 3B\",\n" + + " \"$city\" : \"New London\",\n" + + " \"$region\" : \"New Hampshire\",\n" + + " \"$country\" : \"US\",\n" + + " \"$zipcode\" : \"03257\"\n" + + " },\n" + + " \"$payment_method\" : {\n" + + " \"$ach\" : {\n" + + " \"$ach_type\" : \"$credit\",\n" + + " \"$routing_number\" : \"072403005\",\n" + + " \"$account_number\" : \"12345\",\n" + + " \"$account_holder_name\" : \"Jane Doe\"\n" + + " }\n" + + " },\n" + + " \"$shipping_address\" : {\n" + + " \"$name\" : \"Bill Jones\",\n" + + " \"$phone\" : \"1-415-555-6041\",\n" + + " \"$address_1\" : \"2100 Main Street\",\n" + + " \"$address_2\" : \"Apt 3B\",\n" + + " \"$city\" : \"New London\",\n" + + " \"$region\" : \"New Hampshire\",\n" + + " \"$country\" : \"US\",\n" + + " \"$zipcode\" : \"03257\"\n" + + " },\n" + + " \"$session_id\" : \"gigtleqddo84l8cm15qe4il\",\n" + + "\n" + + " \"$seller_user_id\" : \"slinkys_emporium\",\n" + + "\n" + + " \"digital_wallet\" : \"apple_pay\",\n" + + " \"coupon_code\" : \"dollarMadness\",\n" + + " \"shipping_choice\" : \"FedEx Ground Courier\",\n" + + " \"is_first_time_buyer\" : false\n" + + "}"; + + // Start a new mock server and enqueue a mock response. + MockWebServer server = new MockWebServer(); + MockResponse response = new MockResponse(); + response.setResponseCode(HTTP_OK); + response.setBody("{\n" + + " \"status\" : 0,\n" + + " \"error_message\" : \"OK\",\n" + + " \"time\" : 1327604222,\n" + + " \"request\" : \"" + TestUtils.unescapeJson(expectedRequestBody) + "\"\n" + + "}"); + server.enqueue(response); + server.start(); + + // Create a new client and link it to the mock server. + SiftClient client = new SiftClient("YOUR_API_KEY", "YOUR_ACCOUNT_ID", + new OkHttpClient.Builder() + .addInterceptor(OkHttpUtils.urlRewritingInterceptor(server)) + .build()); + + // Build and execute the request against the mock server. + EventRequest request = client.buildRequest(new TransactionFieldSet() + .setUserId("billy_jones_301") + .setAmount(506790000L) + .setCurrencyCode("USD") + .setUserEmail("bill@gmail.com") + .setTransactionType("$sale") + .setTransactionStatus("$failure") + .setDeclineCategory("$lost") + .setSiteCountry("US") + .setSiteDomain("sift.com") + .setBrandName("sift") + .setOrderId("ORDER-123124124") + .setTransactionId("719637215") + .setBillingAddress(TestUtils.sampleAddress2()) + .setPaymentMethod(TestUtils.samplePaymentMethod3()) + .setShippingAddress(TestUtils.sampleAddress2()) + .setOrderedFrom(TestUtils.sampleOrderedFrom()) + .setSessionId("gigtleqddo84l8cm15qe4il") + .setSellerUserId("slinkys_emporium") + .setCustomField("digital_wallet", "apple_pay") + .setCustomField("coupon_code", "dollarMadness") + .setCustomField("shipping_choice", "FedEx Ground Courier") + .setCustomField("is_first_time_buyer", false)); + EventResponse siftResponse = request.send(); + + // Verify the request. + RecordedRequest request1 = server.takeRequest(); + Assert.assertEquals("POST", request1.getMethod()); + Assert.assertEquals("/v206/events", request1.getPath()); + JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); + + // Verify the response. + Assert.assertEquals(HTTP_OK, siftResponse.getHttpStatusCode()); + Assert.assertEquals(0, (int) siftResponse.getBody().getStatus()); + JSONAssert.assertEquals(response.getBody().readUtf8(), + siftResponse.getBody().toJson(), true); + + server.shutdown(); + } + } From 7562168b33839cbb221bcd96f93c96b08e69b79c Mon Sep 17 00:00:00 2001 From: Rajesh Somavarapu <50379761+rsomavarapu-sift@users.noreply.github.com> Date: Wed, 25 Aug 2021 19:03:50 -0700 Subject: [PATCH 3/4] resolving merge conflicts (#60) --- .../com/siftscience/model/PaymentMethod.java | 10 +++ src/main/java/com/siftscience/model/Sepa.java | 58 +++++++++++++++ src/test/java/com/siftscience/TestUtils.java | 27 +++++-- .../com/siftscience/TransactionEventTest.java | 72 +++++++++++++++++++ 4 files changed, 161 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/siftscience/model/Sepa.java diff --git a/src/main/java/com/siftscience/model/PaymentMethod.java b/src/main/java/com/siftscience/model/PaymentMethod.java index 60b6d9ca..17859ec3 100644 --- a/src/main/java/com/siftscience/model/PaymentMethod.java +++ b/src/main/java/com/siftscience/model/PaymentMethod.java @@ -27,6 +27,7 @@ public class PaymentMethod { @Expose @SerializedName("$stripe_funding") private String stripeFunding; @Expose @SerializedName("$stripe_brand") private String stripeBrand; @Expose @SerializedName("$ach") private Ach ach; + @Expose @SerializedName("$sepa") private Sepa sepa; public String getPaymentType() { return paymentType; @@ -225,4 +226,13 @@ public PaymentMethod setAch(Ach ach) { this.ach = ach; return this; } + + public Sepa getSepa() { + return sepa; + } + + public PaymentMethod setSepa(Sepa sepa) { + this.sepa = sepa; + return this; + } } diff --git a/src/main/java/com/siftscience/model/Sepa.java b/src/main/java/com/siftscience/model/Sepa.java new file mode 100644 index 00000000..5639b40e --- /dev/null +++ b/src/main/java/com/siftscience/model/Sepa.java @@ -0,0 +1,58 @@ +package com.siftscience.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class Sepa { + + @Expose @SerializedName("$sepa_type") private String sepaType; + @Expose @SerializedName("$account_holder_name") private String accountHolderName; + @Expose @SerializedName("$shortened_iban") private String shortenedIban; + @Expose @SerializedName("$bic") private String bic; + @Expose @SerializedName("$mandate_id") private String mandateId; + + public String getSepaType() { + return sepaType; + } + + public Sepa setSepaType(String sepaType) { + this.sepaType = sepaType; + return this; + } + + public String getAccountHolderName() { + return accountHolderName; + } + + public Sepa setAccountHolderName(String accountHolderName) { + this.accountHolderName = accountHolderName; + return this; + } + + public String getShortenedIban() { + return shortenedIban; + } + + public Sepa setShortenedIban(String iban) { + this.shortenedIban = iban; + return this; + } + + public String getBic() { + return bic; + } + + public Sepa setBic(String bic) { + this.bic = bic; + return this; + } + + public String getMandateId() { + return mandateId; + } + + public Sepa setMandateId(String mandateId) { + this.mandateId = mandateId; + return this; + } +} diff --git a/src/test/java/com/siftscience/TestUtils.java b/src/test/java/com/siftscience/TestUtils.java index f5fa3621..c06a9167 100644 --- a/src/test/java/com/siftscience/TestUtils.java +++ b/src/test/java/com/siftscience/TestUtils.java @@ -11,6 +11,7 @@ import com.siftscience.model.PaymentMethod; import com.siftscience.model.Promotion; import com.siftscience.model.Segment; +import com.siftscience.model.Sepa; import java.util.ArrayList; import java.util.List; @@ -69,12 +70,17 @@ static PaymentMethod samplePaymentMethod2() { static PaymentMethod samplePaymentMethod3() { return new PaymentMethod() - .setAch(new Ach() - .setAchType("$credit") - .setRoutingNumber("072403005") - .setAccountNumber("12345") - .setAccountHolderName("Jane Doe") - ); + .setAch(new Ach() + .setAchType("$credit") + .setRoutingNumber("072403005") + .setAccountNumber("12345") + .setAccountHolderName("Jane Doe") + ); + } + + static PaymentMethod samplePaymentMethodWithSepa() { + return new PaymentMethod() + .setSepa(sampleSepa()); } static List sampleTags1() { @@ -233,4 +239,13 @@ static List sampleCategories() { categories.add("2 Bedrooms"); return categories; } + + static Sepa sampleSepa() { + return new Sepa() + .setSepaType("$instant_credit") + .setAccountHolderName("John Doe") + .setShortenedIban("FR76300060") + .setBic("testtest1") + .setMandateId("mandate_id"); + } } diff --git a/src/test/java/com/siftscience/TransactionEventTest.java b/src/test/java/com/siftscience/TransactionEventTest.java index 93d88fb1..2b15376e 100644 --- a/src/test/java/com/siftscience/TransactionEventTest.java +++ b/src/test/java/com/siftscience/TransactionEventTest.java @@ -131,6 +131,78 @@ public void testTransactionEvent() throws Exception { Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); + // Verify the response. + Assert.assertEquals(HTTP_OK, siftResponse.getHttpStatusCode()); + Assert.assertEquals(0, (int) siftResponse.getBody().getStatus()); + JSONAssert.assertEquals(response.getBody().readUtf8(), + siftResponse.getBody().toJson(), true); + server.shutdown(); + } + + @Test + public void testTransactionEventWithSepaPaymentMethod() throws Exception { + String expectedRequestBody = "{\n" + + " \"$type\" : \"$transaction\",\n" + + " \"$api_key\" : \"YOUR_API_KEY\",\n" + + " \"$user_id\" : \"billy_jones_301\",\n" + + " \"$amount\" : 506790000,\n" + + " \"$currency_code\" : \"USD\",\n" + + "\n" + + " \"$user_email\" : \"bill@gmail.com\",\n" + + " \"$transaction_type\" : \"$sale\",\n" + + " \"$transaction_status\" : \"$success\",\n" + + " \"$order_id\" : \"ORDER-123124124\",\n" + + " \"$transaction_id\" : \"719637215\",\n" + + "\n" + + " \"$payment_method\" : {\n" + + " \"$sepa\" : {\n" + + " \"$sepa_type\" : \"$instant_credit\",\n" + + " \"$account_holder_name\" : \"John Doe\",\n" + + " \"$shortened_iban\" : \"FR76300060\",\n" + + " \"$bic\" : \"testtest1\",\n" + + " \"$mandate_id\" : \"mandate_id\",\n" + + " }\n" + + " },\n" + + "}"; + + // Start a new mock server and enqueue a mock response. + MockWebServer server = new MockWebServer(); + MockResponse response = new MockResponse(); + response.setResponseCode(HTTP_OK); + response.setBody("{\n" + + " \"status\" : 0,\n" + + " \"error_message\" : \"OK\",\n" + + " \"time\" : 1327604222,\n" + + " \"request\" : \"" + TestUtils.unescapeJson(expectedRequestBody) + "\"\n" + + "}"); + server.enqueue(response); + server.start(); + + // Create a new client and link it to the mock server. + SiftClient client = new SiftClient("YOUR_API_KEY", "YOUR_ACCOUNT_ID", + new OkHttpClient.Builder() + .addInterceptor(OkHttpUtils.urlRewritingInterceptor(server)) + .build()); + + // Build and execute the request against the mock server. + EventRequest request = client.buildRequest(new TransactionFieldSet() + .setUserId("billy_jones_301") + .setAmount(506790000L) + .setCurrencyCode("USD") + .setUserEmail("bill@gmail.com") + .setTransactionType("$sale") + .setTransactionStatus("$success") + .setOrderId("ORDER-123124124") + .setTransactionId("719637215") + .setPaymentMethod(TestUtils.samplePaymentMethodWithSepa())); + EventResponse siftResponse = request.send(); + + // Verify the request. + RecordedRequest request1 = server.takeRequest(); + Assert.assertEquals("POST", request1.getMethod()); + Assert.assertEquals("/v206/events", request1.getPath()); + JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); + // Verify the response. Assert.assertEquals(HTTP_OK, siftResponse.getHttpStatusCode()); Assert.assertEquals(0, (int) siftResponse.getBody().getStatus()); From dc4da08115494e791b63a981e91e6139263855b2 Mon Sep 17 00:00:00 2001 From: Natasha Sehgal Date: Fri, 27 Aug 2021 16:28:50 -0700 Subject: [PATCH 4/4] add wire complex payment method --- CHANGES.MD | 2 + .../com/siftscience/model/PaymentMethod.java | 10 +++ src/main/java/com/siftscience/model/Wire.java | 88 +++++++++++++++++++ src/test/java/com/siftscience/TestUtils.java | 34 +++++-- .../com/siftscience/TransactionEventTest.java | 76 +++++++++++++++- 5 files changed, 202 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/siftscience/model/Wire.java diff --git a/CHANGES.MD b/CHANGES.MD index 62b5f706..3108a7ce 100644 --- a/CHANGES.MD +++ b/CHANGES.MD @@ -2,6 +2,8 @@ ================= - V206 adds fintech fields. - Add support for `$ach` complex field to `$payment_method` complex field +- Add support for `$sepa` complex field to `$payment_method` complex field +- Add support for `$wire` complex field to `$payment_method` complex field 3.4.0 (2020-05-05) ================= diff --git a/src/main/java/com/siftscience/model/PaymentMethod.java b/src/main/java/com/siftscience/model/PaymentMethod.java index 17859ec3..0b875070 100644 --- a/src/main/java/com/siftscience/model/PaymentMethod.java +++ b/src/main/java/com/siftscience/model/PaymentMethod.java @@ -28,6 +28,7 @@ public class PaymentMethod { @Expose @SerializedName("$stripe_brand") private String stripeBrand; @Expose @SerializedName("$ach") private Ach ach; @Expose @SerializedName("$sepa") private Sepa sepa; + @Expose @SerializedName("$wire") private Wire wire; public String getPaymentType() { return paymentType; @@ -235,4 +236,13 @@ public PaymentMethod setSepa(Sepa sepa) { this.sepa = sepa; return this; } + + public Wire getWire() { + return wire; + } + + public PaymentMethod setWire(Wire wire) { + this.wire = wire; + return this; + } } diff --git a/src/main/java/com/siftscience/model/Wire.java b/src/main/java/com/siftscience/model/Wire.java new file mode 100644 index 00000000..3daa818e --- /dev/null +++ b/src/main/java/com/siftscience/model/Wire.java @@ -0,0 +1,88 @@ +package com.siftscience.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class Wire { + + @Expose @SerializedName("$wire_type") private String wireType; + @Expose @SerializedName("$account_holder_name") private String accountHolderName; + @Expose @SerializedName("$account_number") private String accountNumber; + @Expose @SerializedName("$bank_name") private String bankName; + @Expose @SerializedName("$bank_country") private String bankCountry; + @Expose @SerializedName("$routing_number") private String routingNumber; + @Expose @SerializedName("$swift_id") private String swiftId; + @Expose @SerializedName("$bic") private String bic; + + public String getWireType() { + return wireType; + } + + public Wire setWireType(String wireType) { + this.wireType = wireType; + return this; + } + + public String getAccountHolderName() { + return accountHolderName; + } + + public Wire setAccountHolderName(String accountHolderName) { + this.accountHolderName = accountHolderName; + return this; + } + + public String getAccountNumber() { + return accountNumber; + } + + public Wire setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + return this; + } + + public String getBankName() { + return bankName; + } + + public Wire setBankName(String bankName) { + this.bankName = bankName; + return this; + } + + public String getBankCountry() { + return bankCountry; + } + + public Wire setBankCountry(String bankCountry) { + this.bankCountry = bankCountry; + return this; + } + + public String getRoutingNumber() { + return routingNumber; + } + + public Wire setRoutingNumber(String routingNumber) { + this.routingNumber = routingNumber; + return this; + } + + public String getSwiftId() { + return swiftId; + } + + public Wire setSwiftId(String swiftId) { + this.swiftId = swiftId; + return this; + } + + public String getBic() { + return bic; + } + + public Wire setBic(String bic) { + this.bic = bic; + return this; + } +} \ No newline at end of file diff --git a/src/test/java/com/siftscience/TestUtils.java b/src/test/java/com/siftscience/TestUtils.java index c06a9167..31f884d6 100644 --- a/src/test/java/com/siftscience/TestUtils.java +++ b/src/test/java/com/siftscience/TestUtils.java @@ -12,6 +12,7 @@ import com.siftscience.model.Promotion; import com.siftscience.model.Segment; import com.siftscience.model.Sepa; +import com.siftscience.model.Wire; import java.util.ArrayList; import java.util.List; @@ -68,14 +69,9 @@ static PaymentMethod samplePaymentMethod2() { .setCardLast4("4444"); } - static PaymentMethod samplePaymentMethod3() { + static PaymentMethod samplePaymentMethodWithAch() { return new PaymentMethod() - .setAch(new Ach() - .setAchType("$credit") - .setRoutingNumber("072403005") - .setAccountNumber("12345") - .setAccountHolderName("Jane Doe") - ); + .setAch(sampleAch()); } static PaymentMethod samplePaymentMethodWithSepa() { @@ -83,6 +79,11 @@ static PaymentMethod samplePaymentMethodWithSepa() { .setSepa(sampleSepa()); } + static PaymentMethod samplePaymentMethodWithWire() { + return new PaymentMethod() + .setWire(sampleWire()); + } + static List sampleTags1() { List tags = new ArrayList<>(); tags.add("Popcorn"); @@ -240,6 +241,14 @@ static List sampleCategories() { return categories; } + static Ach sampleAch() { + return new Ach() + .setAchType("$credit") + .setRoutingNumber("072403005") + .setAccountNumber("12345") + .setAccountHolderName("Jane Doe"); + } + static Sepa sampleSepa() { return new Sepa() .setSepaType("$instant_credit") @@ -248,4 +257,15 @@ static Sepa sampleSepa() { .setBic("testtest1") .setMandateId("mandate_id"); } + + static Wire sampleWire() { + return new Wire() + .setWireType("$credit") + .setAccountHolderName("John Doe") + .setAccountNumber("12345") + .setBankName("Chase") + .setBankCountry("US") + .setBic("CHASUS88"); + } + } diff --git a/src/test/java/com/siftscience/TransactionEventTest.java b/src/test/java/com/siftscience/TransactionEventTest.java index 2b15376e..c013f8d5 100644 --- a/src/test/java/com/siftscience/TransactionEventTest.java +++ b/src/test/java/com/siftscience/TransactionEventTest.java @@ -316,7 +316,7 @@ public void testTransactionEventWithAch() throws Exception { .setOrderId("ORDER-123124124") .setTransactionId("719637215") .setBillingAddress(TestUtils.sampleAddress2()) - .setPaymentMethod(TestUtils.samplePaymentMethod3()) + .setPaymentMethod(TestUtils.samplePaymentMethodWithAch()) .setShippingAddress(TestUtils.sampleAddress2()) .setOrderedFrom(TestUtils.sampleOrderedFrom()) .setSessionId("gigtleqddo84l8cm15qe4il") @@ -342,4 +342,78 @@ public void testTransactionEventWithAch() throws Exception { server.shutdown(); } + @Test + public void testTransactionEventWithWirePaymentMethod() throws Exception { + String expectedRequestBody = "{\n" + + " \"$type\" : \"$transaction\",\n" + + " \"$api_key\" : \"YOUR_API_KEY\",\n" + + " \"$user_id\" : \"billy_jones_301\",\n" + + " \"$amount\" : 506790000,\n" + + " \"$currency_code\" : \"USD\",\n" + + "\n" + + " \"$user_email\" : \"bill@gmail.com\",\n" + + " \"$transaction_type\" : \"$sale\",\n" + + " \"$transaction_status\" : \"$success\",\n" + + " \"$order_id\" : \"ORDER-123124124\",\n" + + " \"$transaction_id\" : \"719637215\",\n" + + "\n" + + " \"$payment_method\" : {\n" + + " \"$wire\" : {\n" + + " \"$wire_type\" : \"$credit\",\n" + + " \"$account_holder_name\" : \"John Doe\",\n" + + " \"$account_number\" : \"12345\",\n" + + " \"$bank_name\" : \"Chase\",\n" + + " \"$bank_country\" : \"US\",\n" + + " \"$bic\" : \"CHASUS88\",\n" + + " }\n" + + " },\n" + + "}"; + + // Start a new mock server and enqueue a mock response. + MockWebServer server = new MockWebServer(); + MockResponse response = new MockResponse(); + response.setResponseCode(HTTP_OK); + response.setBody("{\n" + + " \"status\" : 0,\n" + + " \"error_message\" : \"OK\",\n" + + " \"time\" : 1327604222,\n" + + " \"request\" : \"" + TestUtils.unescapeJson(expectedRequestBody) + "\"\n" + + "}"); + server.enqueue(response); + server.start(); + + // Create a new client and link it to the mock server. + SiftClient client = new SiftClient("YOUR_API_KEY", "YOUR_ACCOUNT_ID", + new OkHttpClient.Builder() + .addInterceptor(OkHttpUtils.urlRewritingInterceptor(server)) + .build()); + + // Build and execute the request against the mock server. + EventRequest request = client.buildRequest(new TransactionFieldSet() + .setUserId("billy_jones_301") + .setAmount(506790000L) + .setCurrencyCode("USD") + .setUserEmail("bill@gmail.com") + .setTransactionType("$sale") + .setTransactionStatus("$success") + .setOrderId("ORDER-123124124") + .setTransactionId("719637215") + .setPaymentMethod(TestUtils.samplePaymentMethodWithWire())); + EventResponse siftResponse = request.send(); + + // Verify the request. + RecordedRequest request1 = server.takeRequest(); + Assert.assertEquals("POST", request1.getMethod()); + Assert.assertEquals("/v206/events", request1.getPath()); + JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); + + // Verify the response. + Assert.assertEquals(HTTP_OK, siftResponse.getHttpStatusCode()); + Assert.assertEquals(0, (int) siftResponse.getBody().getStatus()); + JSONAssert.assertEquals(response.getBody().readUtf8(), + siftResponse.getBody().toJson(), true); + + server.shutdown(); + } + }