From a33fcacb5abe7437ac8642f37847e93d94e3cbca Mon Sep 17 00:00:00 2001 From: Stanley Peng Date: Thu, 12 Dec 2024 19:55:14 -0800 Subject: [PATCH] Add strategy to result object --- .../data/model/common/RecommendationStrategy.kt | 13 +++++++++++++ .../java/io/constructor/data/model/common/Result.kt | 1 + .../core/ConstructorIoRecommendationsTest.kt | 1 + .../src/test/resources/recommendation_response.json | 5 ++++- 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 library/src/main/java/io/constructor/data/model/common/RecommendationStrategy.kt diff --git a/library/src/main/java/io/constructor/data/model/common/RecommendationStrategy.kt b/library/src/main/java/io/constructor/data/model/common/RecommendationStrategy.kt new file mode 100644 index 00000000..4f7ccb4e --- /dev/null +++ b/library/src/main/java/io/constructor/data/model/common/RecommendationStrategy.kt @@ -0,0 +1,13 @@ +package io.constructor.data.model.common + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import java.io.Serializable + +/** + * Models a Recommendation Strategy object + */ +@JsonClass(generateAdapter = true) +data class RecommendationStrategy( + @Json(name = "id") val id: String, +) : Serializable diff --git a/library/src/main/java/io/constructor/data/model/common/Result.kt b/library/src/main/java/io/constructor/data/model/common/Result.kt index 474c506c..0c86b269 100644 --- a/library/src/main/java/io/constructor/data/model/common/Result.kt +++ b/library/src/main/java/io/constructor/data/model/common/Result.kt @@ -13,6 +13,7 @@ data class Result( @Json(name = "matched_terms") val matchedTerms: List?, @Json(name = "variations") val variations: List?, @Json(name = "variations_map") val variationsMap: Any?, + @Json(name = "strategy") val strategy: RecommendationStrategy?, @Json(name = "value") val value: String, @Json(name = "is_slotted") val isSlotted: Boolean?, @Json(name = "labels") val labels: Map?, diff --git a/library/src/test/java/io/constructor/core/ConstructorIoRecommendationsTest.kt b/library/src/test/java/io/constructor/core/ConstructorIoRecommendationsTest.kt index b68392b1..f03795be 100644 --- a/library/src/test/java/io/constructor/core/ConstructorIoRecommendationsTest.kt +++ b/library/src/test/java/io/constructor/core/ConstructorIoRecommendationsTest.kt @@ -72,6 +72,7 @@ class ConstructorIoRecommendationsTest { assertEquals(recommendationResponse?.response?.results!![0].data.id, "960189161") assertEquals(recommendationResponse?.response?.results!![0].data.imageUrl, "https://d17bbgoo3npfov.cloudfront.net/images/farmstand-960189161.png") assertEquals(recommendationResponse?.response?.results!![0].data.metadata?.get("price"), 1.11) + assertEquals(recommendationResponse?.response?.results!![0].strategy?.id, "bestsellers") assertEquals(recommendationResponse?.response?.resultCount, 225) val request = mockServer.takeRequest() diff --git a/library/src/test/resources/recommendation_response.json b/library/src/test/resources/recommendation_response.json index 0ee11060..528fff1e 100755 --- a/library/src/test/resources/recommendation_response.json +++ b/library/src/test/resources/recommendation_response.json @@ -37,6 +37,9 @@ "url": "/" }, "is_slotted": false, + "strategy": { + "id": "bestsellers" + }, "matched_terms": [], "value": "LaCroix Sparkling Water Pure Cans - 12-12 Fl. Oz." }, { @@ -795,4 +798,4 @@ } }, "result_id": "49eb05c2-a3a3-4080-b238-82c5a44f8cf5" -} \ No newline at end of file +}