Skip to content

Commit f2ff341

Browse files
algolia-botshortcutsmillotp
committed
fix(clients): highlight and snippet results e2e (generated)
algolia/api-clients-automation#3567 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Clément Vannicatte <[email protected]> Co-authored-by: Pierre Millot <[email protected]>
1 parent 88acc73 commit f2ff341

File tree

18 files changed

+72
-72
lines changed

18 files changed

+72
-72
lines changed

client/src/commonMain/kotlin/com/algolia/client/extensions/internal/Json.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ internal val JsonElement.isString: Boolean
5959
* Returns true if [JsonElement] is a [JsonArray] of primitives, false otherwise.
6060
*/
6161
internal val JsonElement.isJsonArrayOfPrimitives: Boolean
62-
get() = this is JsonArray && first() is JsonPrimitive
62+
get() = this is JsonArray && (isEmpty() || first() is JsonPrimitive)
6363

6464
/**
6565
* Returns true if [JsonElement] is a [JsonArray] of objects, false otherwise.
6666
*/
6767
internal val JsonElement.isJsonArrayOfObjects: Boolean
68-
get() = this is JsonArray && first() is JsonObject
68+
get() = this is JsonArray && (isEmpty() || first() is JsonObject)

client/src/commonMain/kotlin/com/algolia/client/model/abtesting/ABTest.kt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ import kotlinx.serialization.json.*
88
* ABTest
99
*
1010
* @param abTestID Unique A/B test identifier.
11-
* @param clickSignificance
12-
* @param conversionSignificance
13-
* @param addToCartSignificance
14-
* @param purchaseSignificance
15-
* @param revenueSignificance
1611
* @param updatedAt Date and time when the A/B test was last updated, in RFC 3339 format.
1712
* @param createdAt Date and time when the A/B test was created, in RFC 3339 format.
1813
* @param endAt End date and time of the A/B test, in RFC 3339 format.
1914
* @param name A/B test name.
2015
* @param status
2116
* @param variants A/B test variants. The first variant is your _control_ index, typically your production index. The second variant is an index with changed settings that you want to test against the control.
17+
* @param clickSignificance
18+
* @param conversionSignificance
19+
* @param addToCartSignificance
20+
* @param purchaseSignificance
21+
* @param revenueSignificance
2222
* @param configuration
2323
*/
2424
@Serializable
@@ -27,16 +27,6 @@ public data class ABTest(
2727
/** Unique A/B test identifier. */
2828
@SerialName(value = "abTestID") val abTestID: Int,
2929

30-
@SerialName(value = "clickSignificance") val clickSignificance: Double,
31-
32-
@SerialName(value = "conversionSignificance") val conversionSignificance: Double,
33-
34-
@SerialName(value = "addToCartSignificance") val addToCartSignificance: Double,
35-
36-
@SerialName(value = "purchaseSignificance") val purchaseSignificance: Double,
37-
38-
@SerialName(value = "revenueSignificance") val revenueSignificance: Map<kotlin.String, Double>,
39-
4030
/** Date and time when the A/B test was last updated, in RFC 3339 format. */
4131
@SerialName(value = "updatedAt") val updatedAt: String,
4232

@@ -54,5 +44,15 @@ public data class ABTest(
5444
/** A/B test variants. The first variant is your _control_ index, typically your production index. The second variant is an index with changed settings that you want to test against the control. */
5545
@SerialName(value = "variants") val variants: List<Variant>,
5646

47+
@SerialName(value = "clickSignificance") val clickSignificance: Double? = null,
48+
49+
@SerialName(value = "conversionSignificance") val conversionSignificance: Double? = null,
50+
51+
@SerialName(value = "addToCartSignificance") val addToCartSignificance: Double? = null,
52+
53+
@SerialName(value = "purchaseSignificance") val purchaseSignificance: Double? = null,
54+
55+
@SerialName(value = "revenueSignificance") val revenueSignificance: Map<kotlin.String, Double>? = null,
56+
5757
@SerialName(value = "configuration") val configuration: ABTestConfiguration? = null,
5858
)

client/src/commonMain/kotlin/com/algolia/client/model/abtesting/AddABTestsVariant.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ public sealed interface AddABTestsVariant {
2626
internal class AddABTestsVariantSerializer : JsonContentPolymorphicSerializer<AddABTestsVariant>(AddABTestsVariant::class) {
2727
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<AddABTestsVariant> {
2828
return when {
29+
element is JsonObject && element.containsKey("customSearchParameters") -> AbTestsVariantSearchParams.serializer()
2930
element is JsonObject -> AbTestsVariant.serializer()
30-
element is JsonObject -> AbTestsVariantSearchParams.serializer()
3131
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
3232
}
3333
}

client/src/commonMain/kotlin/com/algolia/client/model/abtesting/Variant.kt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,24 @@ import kotlinx.serialization.json.*
88
* Variant
99
*
1010
* @param addToCartCount Number of add-to-cart events for this variant.
11-
* @param addToCartRate [Add-to-cart rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#add-to-cart-rate) for this variant.
12-
* @param averageClickPosition [Average click position](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-position) for this variant.
1311
* @param clickCount Number of click events for this variant.
14-
* @param clickThroughRate [Click-through rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-through-rate) for this variant.
1512
* @param conversionCount Number of click events for this variant.
16-
* @param conversionRate [Conversion rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#conversion-rate) for this variant.
1713
* @param description Description for this variant.
1814
* @param index Index name of the A/B test variant (case-sensitive).
1915
* @param noResultCount Number of [searches without results](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#searches-without-results) for this variant.
2016
* @param purchaseCount Number of purchase events for this variant.
21-
* @param purchaseRate [Purchase rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#purchase-rate) for this variant.
2217
* @param searchCount Number of searches for this variant.
2318
* @param trafficPercentage Percentage of search requests each variant receives.
2419
* @param userCount Number of users that made searches to this variant.
2520
* @param trackedUserCount Number of users that made tracked searches to this variant.
21+
* @param addToCartRate [Add-to-cart rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#add-to-cart-rate) for this variant.
22+
* @param averageClickPosition [Average click position](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-position) for this variant.
23+
* @param clickThroughRate [Click-through rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-through-rate) for this variant.
24+
* @param conversionRate [Conversion rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#conversion-rate) for this variant.
2625
* @param currencies A/B test currencies.
2726
* @param estimatedSampleSize Estimated number of searches required to achieve the desired statistical significance. The A/B test configuration must include a `mininmumDetectableEffect` setting for this number to be included in the response.
2827
* @param filterEffects
28+
* @param purchaseRate [Purchase rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#purchase-rate) for this variant.
2929
* @param trackedSearchCount Number of tracked searches. Tracked searches are search requests where the `clickAnalytics` parameter is true.
3030
*/
3131
@Serializable
@@ -34,24 +34,12 @@ public data class Variant(
3434
/** Number of add-to-cart events for this variant. */
3535
@SerialName(value = "addToCartCount") val addToCartCount: Int,
3636

37-
/** [Add-to-cart rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#add-to-cart-rate) for this variant. */
38-
@SerialName(value = "addToCartRate") val addToCartRate: Double,
39-
40-
/** [Average click position](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-position) for this variant. */
41-
@SerialName(value = "averageClickPosition") val averageClickPosition: Int,
42-
4337
/** Number of click events for this variant. */
4438
@SerialName(value = "clickCount") val clickCount: Int,
4539

46-
/** [Click-through rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-through-rate) for this variant. */
47-
@SerialName(value = "clickThroughRate") val clickThroughRate: Double,
48-
4940
/** Number of click events for this variant. */
5041
@SerialName(value = "conversionCount") val conversionCount: Int,
5142

52-
/** [Conversion rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#conversion-rate) for this variant. */
53-
@SerialName(value = "conversionRate") val conversionRate: Double,
54-
5543
/** Description for this variant. */
5644
@SerialName(value = "description") val description: String,
5745

@@ -64,9 +52,6 @@ public data class Variant(
6452
/** Number of purchase events for this variant. */
6553
@SerialName(value = "purchaseCount") val purchaseCount: Int,
6654

67-
/** [Purchase rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#purchase-rate) for this variant. */
68-
@SerialName(value = "purchaseRate") val purchaseRate: Double,
69-
7055
/** Number of searches for this variant. */
7156
@SerialName(value = "searchCount") val searchCount: Int,
7257

@@ -79,6 +64,18 @@ public data class Variant(
7964
/** Number of users that made tracked searches to this variant. */
8065
@SerialName(value = "trackedUserCount") val trackedUserCount: Int,
8166

67+
/** [Add-to-cart rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#add-to-cart-rate) for this variant. */
68+
@SerialName(value = "addToCartRate") val addToCartRate: Double? = null,
69+
70+
/** [Average click position](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-position) for this variant. */
71+
@SerialName(value = "averageClickPosition") val averageClickPosition: Int? = null,
72+
73+
/** [Click-through rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-through-rate) for this variant. */
74+
@SerialName(value = "clickThroughRate") val clickThroughRate: Double? = null,
75+
76+
/** [Conversion rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#conversion-rate) for this variant. */
77+
@SerialName(value = "conversionRate") val conversionRate: Double? = null,
78+
8279
/** A/B test currencies. */
8380
@SerialName(value = "currencies") val currencies: Map<kotlin.String, Currency>? = null,
8481

@@ -87,6 +84,9 @@ public data class Variant(
8784

8885
@SerialName(value = "filterEffects") val filterEffects: FilterEffects? = null,
8986

87+
/** [Purchase rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#purchase-rate) for this variant. */
88+
@SerialName(value = "purchaseRate") val purchaseRate: Double? = null,
89+
9090
/** Number of tracked searches. Tracked searches are search requests where the `clickAnalytics` parameter is true. */
9191
@SerialName(value = "trackedSearchCount") val trackedSearchCount: Int? = null,
9292
)

client/src/commonMain/kotlin/com/algolia/client/model/ingestion/AuthInput.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ public sealed interface AuthInput {
3030
internal class AuthInputSerializer : JsonContentPolymorphicSerializer<AuthInput>(AuthInput::class) {
3131
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<AuthInput> {
3232
return when {
33-
element is JsonObject -> AuthGoogleServiceAccount.serializer()
34-
element is JsonObject -> AuthBasic.serializer()
35-
element is JsonObject -> AuthAPIKey.serializer()
36-
element is JsonObject -> AuthOAuth.serializer()
33+
element is JsonObject && element.containsKey("url") && element.containsKey("client_id") && element.containsKey("client_secret") -> AuthOAuth.serializer()
34+
element is JsonObject && element.containsKey("clientEmail") && element.containsKey("privateKey") -> AuthGoogleServiceAccount.serializer()
35+
element is JsonObject && element.containsKey("username") && element.containsKey("password") -> AuthBasic.serializer()
36+
element is JsonObject && element.containsKey("key") -> AuthAPIKey.serializer()
3737
element is JsonObject -> AuthAlgolia.serializer()
3838
element is JsonObject -> AuthAlgoliaInsights.serializer()
3939
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")

client/src/commonMain/kotlin/com/algolia/client/model/ingestion/AuthInputPartial.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ public sealed interface AuthInputPartial {
3030
internal class AuthInputPartialSerializer : JsonContentPolymorphicSerializer<AuthInputPartial>(AuthInputPartial::class) {
3131
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<AuthInputPartial> {
3232
return when {
33-
element is JsonObject -> AuthGoogleServiceAccountPartial.serializer()
34-
element is JsonObject -> AuthBasicPartial.serializer()
35-
element is JsonObject -> AuthAPIKeyPartial.serializer()
36-
element is JsonObject -> AuthOAuthPartial.serializer()
33+
element is JsonObject && element.containsKey("clientEmail") -> AuthGoogleServiceAccountPartial.serializer()
34+
element is JsonObject && element.containsKey("username") -> AuthBasicPartial.serializer()
35+
element is JsonObject && element.containsKey("key") -> AuthAPIKeyPartial.serializer()
36+
element is JsonObject && element.containsKey("url") -> AuthOAuthPartial.serializer()
3737
element is JsonObject -> AuthAlgoliaPartial.serializer()
3838
element is JsonObject -> AuthAlgoliaInsightsPartial.serializer()
3939
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")

client/src/commonMain/kotlin/com/algolia/client/model/ingestion/SourceInput.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ import kotlinx.serialization.json.*
1313
* SourceInput
1414
*
1515
* Implementations:
16-
* - [SourceGA4BigQueryExport]
1716
* - [SourceBigCommerce]
1817
* - [SourceBigQuery]
19-
* - [SourceCommercetools]
2018
* - [SourceCSV]
19+
* - [SourceCommercetools]
2120
* - [SourceDocker]
21+
* - [SourceGA4BigQueryExport]
2222
* - [SourceJSON]
2323
* - [SourceShopify]
2424
*/
@@ -32,14 +32,14 @@ public sealed interface SourceInput {
3232
internal class SourceInputSerializer : JsonContentPolymorphicSerializer<SourceInput>(SourceInput::class) {
3333
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<SourceInput> {
3434
return when {
35+
element is JsonObject && element.containsKey("registry") && element.containsKey("image") && element.containsKey("imageType") && element.containsKey("configuration") -> SourceDocker.serializer()
36+
element is JsonObject && element.containsKey("projectID") && element.containsKey("datasetID") && element.containsKey("tablePrefix") -> SourceGA4BigQueryExport.serializer()
3537
element is JsonObject && element.containsKey("projectKey") -> SourceCommercetools.serializer()
3638
element is JsonObject && element.containsKey("storeHash") -> SourceBigCommerce.serializer()
3739
element is JsonObject && element.containsKey("projectID") -> SourceBigQuery.serializer()
38-
element is JsonObject && element.containsKey("projectID") && element.containsKey("datasetID") && element.containsKey("tablePrefix") -> SourceGA4BigQueryExport.serializer()
40+
element is JsonObject && element.containsKey("shopURL") -> SourceShopify.serializer()
3941
element is JsonObject -> SourceJSON.serializer()
4042
element is JsonObject -> SourceCSV.serializer()
41-
element is JsonObject -> SourceDocker.serializer()
42-
element is JsonObject -> SourceShopify.serializer()
4343
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
4444
}
4545
}

client/src/commonMain/kotlin/com/algolia/client/model/ingestion/SourceUpdateInput.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import kotlinx.serialization.json.*
1313
* SourceUpdateInput
1414
*
1515
* Implementations:
16-
* - [SourceGA4BigQueryExport]
1716
* - [SourceBigQuery]
1817
* - [SourceCSV]
18+
* - [SourceGA4BigQueryExport]
1919
* - [SourceJSON]
2020
* - [SourceUpdateCommercetools]
2121
* - [SourceUpdateDocker]
@@ -31,12 +31,12 @@ public sealed interface SourceUpdateInput {
3131
internal class SourceUpdateInputSerializer : JsonContentPolymorphicSerializer<SourceUpdateInput>(SourceUpdateInput::class) {
3232
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<SourceUpdateInput> {
3333
return when {
34-
element is JsonObject && element.containsKey("projectID") -> SourceBigQuery.serializer()
3534
element is JsonObject && element.containsKey("projectID") && element.containsKey("datasetID") && element.containsKey("tablePrefix") -> SourceGA4BigQueryExport.serializer()
35+
element is JsonObject && element.containsKey("projectID") -> SourceBigQuery.serializer()
36+
element is JsonObject && element.containsKey("configuration") -> SourceUpdateDocker.serializer()
3637
element is JsonObject -> SourceUpdateCommercetools.serializer()
3738
element is JsonObject -> SourceJSON.serializer()
3839
element is JsonObject -> SourceCSV.serializer()
39-
element is JsonObject -> SourceUpdateDocker.serializer()
4040
element is JsonObject -> SourceUpdateShopify.serializer()
4141
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
4242
}

client/src/commonMain/kotlin/com/algolia/client/model/ingestion/TaskCreateTrigger.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ public sealed interface TaskCreateTrigger {
2828
internal class TaskCreateTriggerSerializer : JsonContentPolymorphicSerializer<TaskCreateTrigger>(TaskCreateTrigger::class) {
2929
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<TaskCreateTrigger> {
3030
return when {
31+
element is JsonObject && element.containsKey("cron") -> ScheduleTriggerInput.serializer()
3132
element is JsonObject -> OnDemandTriggerInput.serializer()
32-
element is JsonObject -> ScheduleTriggerInput.serializer()
3333
element is JsonObject -> SubscriptionTrigger.serializer()
3434
element is JsonObject -> StreamingTrigger.serializer()
3535
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")

client/src/commonMain/kotlin/com/algolia/client/model/ingestion/TaskInput.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public sealed interface TaskInput {
2727
internal class TaskInputSerializer : JsonContentPolymorphicSerializer<TaskInput>(TaskInput::class) {
2828
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<TaskInput> {
2929
return when {
30-
element is JsonObject -> StreamingInput.serializer()
31-
element is JsonObject -> DockerStreamsInput.serializer()
30+
element is JsonObject && element.containsKey("mapping") -> StreamingInput.serializer()
31+
element is JsonObject && element.containsKey("streams") -> DockerStreamsInput.serializer()
3232
element is JsonObject -> ShopifyInput.serializer()
3333
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
3434
}

0 commit comments

Comments
 (0)