From 6d1b151d8e7eed32d1922a93be843315fe97812b Mon Sep 17 00:00:00 2001 From: Ihor Prysiazhnyi Date: Wed, 7 May 2025 15:23:40 +0300 Subject: [PATCH 1/3] [API-8172, API-8202] Adds `$promotions` to `$update_account` and moves `$iata_carrier_code` --- .../siftscience/model/BaseAccountFieldSet.java | 10 ++++++++++ .../java/com/siftscience/model/Booking.java | 10 ---------- .../model/CreateAccountFieldSet.java | 10 ---------- .../java/com/siftscience/model/Segment.java | 18 ++++++++++++++++++ .../com/siftscience/CreateOrderEventTest.java | 4 ++-- src/test/java/com/siftscience/TestUtils.java | 5 +++-- .../siftscience/UpdateAccountEventTest.java | 17 +++++++++++++++++ .../com/siftscience/UpdateOrderEventTest.java | 4 ++-- 8 files changed, 52 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/siftscience/model/BaseAccountFieldSet.java b/src/main/java/com/siftscience/model/BaseAccountFieldSet.java index 9c429077..95979e53 100644 --- a/src/main/java/com/siftscience/model/BaseAccountFieldSet.java +++ b/src/main/java/com/siftscience/model/BaseAccountFieldSet.java @@ -14,6 +14,7 @@ public abstract class BaseAccountFieldSet> @Expose @SerializedName("$payment_methods") private List paymentMethods; @Expose @SerializedName("$billing_address") private Address billingAddress; @Expose @SerializedName("$shipping_address") private Address shippingAddress; + @Expose @SerializedName("$promotions") private List promotions; @Expose @SerializedName("$social_sign_on_type") private String socialSignOnType; @Expose @SerializedName("$merchant_profile") private MerchantProfile merchantProfile; @Expose @SerializedName(VERIFICATION_PHONE_NUMBER) private String verificationPhoneNumber; @@ -107,4 +108,13 @@ public T setVerificationPhoneNumber(String verificationPhoneNumber) { this.verificationPhoneNumber = verificationPhoneNumber; return (T) this; } + + public List getPromotions() { + return promotions; + } + + public T setPromotions(List promotions) { + this.promotions = promotions; + return (T) this; + } } diff --git a/src/main/java/com/siftscience/model/Booking.java b/src/main/java/com/siftscience/model/Booking.java index b0515d7c..cc5cc092 100644 --- a/src/main/java/com/siftscience/model/Booking.java +++ b/src/main/java/com/siftscience/model/Booking.java @@ -14,7 +14,6 @@ public class Booking { @Expose @SerializedName("$currency_code") private String currencyCode; @Expose @SerializedName("$exchange_rate") private ExchangeRate exchangeRate; @Expose @SerializedName("$quantity") private Long quantity; - @Expose @SerializedName("$iata_carrier_code") private String iataCarrierCode; @Expose @SerializedName("$guests") private List guests; @Expose @SerializedName("$segments") private List segments; @Expose @SerializedName("$room_type") private String roomType; @@ -96,15 +95,6 @@ public Booking setQuantity(Long quantity) { return this; } - public String getIataCarrierCode() { - return iataCarrierCode; - } - - public Booking setIataCarrierCode(String iataCarrierCode) { - this.iataCarrierCode = iataCarrierCode; - return this; - } - public List getGuests() { return guests; } diff --git a/src/main/java/com/siftscience/model/CreateAccountFieldSet.java b/src/main/java/com/siftscience/model/CreateAccountFieldSet.java index 46e6bd11..bcf6d398 100644 --- a/src/main/java/com/siftscience/model/CreateAccountFieldSet.java +++ b/src/main/java/com/siftscience/model/CreateAccountFieldSet.java @@ -11,22 +11,12 @@ public static CreateAccountFieldSet fromJson(String json) { } @Expose @SerializedName("$account_types") private List accountTypes; - @Expose @SerializedName("$promotions") private List promotions; @Override public String getEventType() { return "$create_account"; } - public List getPromotions() { - return promotions; - } - - public CreateAccountFieldSet setPromotions(List promotions) { - this.promotions = promotions; - return this; - } - public List getAccountTypes() { return accountTypes; } public CreateAccountFieldSet setAccountTypes(List accountTypes) { diff --git a/src/main/java/com/siftscience/model/Segment.java b/src/main/java/com/siftscience/model/Segment.java index 3858bff0..4598da02 100644 --- a/src/main/java/com/siftscience/model/Segment.java +++ b/src/main/java/com/siftscience/model/Segment.java @@ -12,6 +12,7 @@ public class Segment { @Expose @SerializedName("$arrival_airport_code") private String arrivalAirportCode; @Expose @SerializedName("$departure_airport_code") private String departureAirportCode; @Expose @SerializedName("$fare_class") private String fareClass; + @Expose @SerializedName("$iata_carrier_code") private String iataCarrierCode; public Address getDepartureAddress() { @@ -85,4 +86,21 @@ public Segment setFareClass(String fareClass) { this.fareClass = fareClass; return this; } + + public String getIataCarrierCode() { + return iataCarrierCode; + } + + /** + * Sets the IATA carrier code for the flight segment. + * + *

This field should only be set when the booking type is {@code $flight}.

+ * + * @param iataCarrierCode The IATA carrier code. + * @return The updated {@code Segment} object. + */ + public Segment setIataCarrierCode(String iataCarrierCode) { + this.iataCarrierCode = iataCarrierCode; + return this; + } } diff --git a/src/test/java/com/siftscience/CreateOrderEventTest.java b/src/test/java/com/siftscience/CreateOrderEventTest.java index 46aecc59..dda13ebe 100644 --- a/src/test/java/com/siftscience/CreateOrderEventTest.java +++ b/src/test/java/com/siftscience/CreateOrderEventTest.java @@ -124,12 +124,12 @@ public void testCreateOrderEventWithBookings() throws JSONException, IOException " \"$vessel_number\": \"LH454\",\n" + " \"$fare_class\": \"Premium Economy\",\n" + " \"$departure_airport_code\": \"SFO\",\n" + - " \"$arrival_airport_code\": \"LAS\"\n" + + " \"$arrival_airport_code\": \"LAS\",\n" + + " \"$iata_carrier_code\": \"AS\"\n" + " }\n" + " ],\n" + " \"$price\": 49900000,\n" + " \"$currency_code\": \"USD\",\n" + - " \"$iata_carrier_code\": \"AS\",\n" + " \"$quantity\": 1,\n" + " \"$tags\": [\n" + " \"team-123\",\n" + diff --git a/src/test/java/com/siftscience/TestUtils.java b/src/test/java/com/siftscience/TestUtils.java index 59790ca0..efb591d1 100644 --- a/src/test/java/com/siftscience/TestUtils.java +++ b/src/test/java/com/siftscience/TestUtils.java @@ -197,7 +197,6 @@ static Booking sampleBooking() { .setSegments(segments) .setPrice(49900000L) .setCurrencyCode("USD") - .setIataCarrierCode("AS") .setTags(sampleTags3()) .setQuantity(1L); } @@ -243,8 +242,10 @@ static Segment sampleSegment() { .setVesselNumber("LH454") .setFareClass("Premium Economy") .setDepartureAirportCode("SFO") - .setArrivalAirportCode("LAS"); + .setArrivalAirportCode("LAS") + .setIataCarrierCode("AS"); } + static Discount sampleDiscount1() { return new Discount() .setAmount(5000000L) diff --git a/src/test/java/com/siftscience/UpdateAccountEventTest.java b/src/test/java/com/siftscience/UpdateAccountEventTest.java index 0432ad2d..3bccb37f 100644 --- a/src/test/java/com/siftscience/UpdateAccountEventTest.java +++ b/src/test/java/com/siftscience/UpdateAccountEventTest.java @@ -6,6 +6,7 @@ import java.util.List; import com.siftscience.model.PaymentMethod; +import com.siftscience.model.Promotion; import com.siftscience.model.UpdateAccountFieldSet; import okhttp3.OkHttpClient; import okhttp3.mockwebserver.MockResponse; @@ -55,6 +56,17 @@ public void testUpdateAccount() throws Exception { " \"$country\" : \"US\",\n" + " \"$zipcode\" : \"03257\"\n" + " },\n" + + " \"$promotions\" : [\n" + + " {\n" + + " \"$promotion_id\" : \"FriendReferral\",\n" + + " \"$status\" : \"$success\",\n" + + " \"$referrer_user_id\" : \"janejane102\",\n" + + " \"$credit_point\" : {\n" + + " \"$amount\" : 100,\n" + + " \"$credit_point_type\" : \"account karma\"\n" + + " }\n" + + " }\n" + + " ],\n" + " \"$social_sign_on_type\" : \"$twitter\",\n" + " \"email_confirmed_status\" : \"$success\",\n" + " \"phone_confirmed_status\" : \"$success\",\n" + @@ -99,6 +111,10 @@ public void testUpdateAccount() throws Exception { List paymentMethodList = new ArrayList<>(); paymentMethodList.add(TestUtils.samplePaymentMethod2()); + // Promotions. + List promotionList = new ArrayList<>(); + promotionList.add(TestUtils.samplePromotion2()); + // Build and execute the request against the mock server. SiftRequest request = client.buildRequest( new UpdateAccountFieldSet() @@ -111,6 +127,7 @@ public void testUpdateAccount() throws Exception { .setPaymentMethods(paymentMethodList) .setBillingAddress(TestUtils.sampleAddress2()) .setShippingAddress(TestUtils.sampleAddress2()) + .setPromotions(promotionList) .setSocialSignOnType("$twitter") .setCustomField("email_confirmed_status", "$success") .setCustomField("phone_confirmed_status", "$success") diff --git a/src/test/java/com/siftscience/UpdateOrderEventTest.java b/src/test/java/com/siftscience/UpdateOrderEventTest.java index 7f3a2096..d4b65517 100644 --- a/src/test/java/com/siftscience/UpdateOrderEventTest.java +++ b/src/test/java/com/siftscience/UpdateOrderEventTest.java @@ -123,12 +123,12 @@ public void testUpdateOrderEventWithBookings() throws JSONException, IOException " \"$vessel_number\": \"LH454\",\n" + " \"$fare_class\": \"Premium Economy\",\n" + " \"$departure_airport_code\": \"SFO\",\n" + - " \"$arrival_airport_code\": \"LAS\"\n" + + " \"$arrival_airport_code\": \"LAS\",\n" + + " \"$iata_carrier_code\": \"AS\"\n" + " }\n" + " ],\n" + " \"$price\": 49900000,\n" + " \"$currency_code\": \"USD\",\n" + - " \"$iata_carrier_code\": \"AS\",\n" + " \"$quantity\": 1,\n" + " \"$tags\": [\n" + " \"team-123\",\n" + From b79dd4d5debda5f5e29f29369ea5bc22c5ec453a Mon Sep 17 00:00:00 2001 From: Ihor Prysiazhnyi Date: Wed, 7 May 2025 16:39:28 +0300 Subject: [PATCH 2/3] [API-8172, API-8202] Prepares 3.20.0 release --- CHANGES.MD | 6 ++++++ README.md | 4 ++-- build.gradle | 2 +- src/main/java/com/siftscience/Constants.java | 2 +- src/test/java/com/siftscience/SiftRequestTest.java | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGES.MD b/CHANGES.MD index 6b793ce7..caf91031 100644 --- a/CHANGES.MD +++ b/CHANGES.MD @@ -1,3 +1,9 @@ +3.20.0 (2025-05-07) +================= +- Added support for `$promotions` complex field to `$update_account` event fields +- Added support for `$iata_carrier_code` to the `$segment` complex field +- Removed support for `$iata_carrier_code` in the `$booking` complex field + 3.19.0 (2025-04-24) ================= - Added support for `$exchange_rate` complex field to `$transaction`, `$create_order`, diff --git a/README.md b/README.md index d35d7d22..96218131 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,13 @@ Java 1.7 or later. com.siftscience sift-java - 3.19.0 + 3.20.0 ``` ### Gradle ``` dependencies { - compile 'com.siftscience:sift-java:3.19.0' + compile 'com.siftscience:sift-java:3.20.0' } ``` ### Other diff --git a/build.gradle b/build.gradle index b5fd03c9..930736e7 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ apply plugin: 'signing' apply plugin: 'java-library-distribution' group = 'com.siftscience' -version = '3.19.0' +version = '3.20.0' repositories { mavenCentral() diff --git a/src/main/java/com/siftscience/Constants.java b/src/main/java/com/siftscience/Constants.java index 5c0b538e..a2bcf51c 100644 --- a/src/main/java/com/siftscience/Constants.java +++ b/src/main/java/com/siftscience/Constants.java @@ -3,6 +3,6 @@ public class Constants { public static final String API_VERSION = "v205"; - public static final String LIB_VERSION = "3.19.0"; + public static final String LIB_VERSION = "3.20.0"; public static final String USER_AGENT_HEADER = String.format("SiftScience/%s sift-java/%s", API_VERSION, LIB_VERSION); } diff --git a/src/test/java/com/siftscience/SiftRequestTest.java b/src/test/java/com/siftscience/SiftRequestTest.java index b0d3228b..bf4fe073 100644 --- a/src/test/java/com/siftscience/SiftRequestTest.java +++ b/src/test/java/com/siftscience/SiftRequestTest.java @@ -29,7 +29,7 @@ public void testUserAgentHeader() throws Exception { // then RecordedRequest recordedRequest = server.takeRequest(); - assertEquals("SiftScience/v205 sift-java/3.19.0", + assertEquals("SiftScience/v205 sift-java/3.20.0", recordedRequest.getHeader("User-Agent")); } From f7f3d27099eca90a2640acdaa92716bf7c16ab05 Mon Sep 17 00:00:00 2001 From: Ihor Prysiazhnyi Date: Mon, 12 May 2025 15:43:21 +0300 Subject: [PATCH 3/3] Changes to release date --- CHANGES.MD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.MD b/CHANGES.MD index caf91031..b1284ca6 100644 --- a/CHANGES.MD +++ b/CHANGES.MD @@ -1,4 +1,4 @@ -3.20.0 (2025-05-07) +3.20.0 (2025-05-12) ================= - Added support for `$promotions` complex field to `$update_account` event fields - Added support for `$iata_carrier_code` to the `$segment` complex field