Skip to content

Commit

Permalink
fix(clients): highlight and snippet results e2e (generated)
Browse files Browse the repository at this point in the history
algolia/api-clients-automation#3567

Co-authored-by: algolia-bot <accounts+algolia-api-client-bot@algolia.com>
Co-authored-by: Clément Vannicatte <vannicattec@gmail.com>
Co-authored-by: Pierre Millot <pierre.millot@algolia.com>
  • Loading branch information
3 people committed Aug 21, 2024
1 parent 88acc73 commit f2ff341
Show file tree
Hide file tree
Showing 18 changed files with 72 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ internal val JsonElement.isString: Boolean
* Returns true if [JsonElement] is a [JsonArray] of primitives, false otherwise.
*/
internal val JsonElement.isJsonArrayOfPrimitives: Boolean
get() = this is JsonArray && first() is JsonPrimitive
get() = this is JsonArray && (isEmpty() || first() is JsonPrimitive)

/**
* Returns true if [JsonElement] is a [JsonArray] of objects, false otherwise.
*/
internal val JsonElement.isJsonArrayOfObjects: Boolean
get() = this is JsonArray && first() is JsonObject
get() = this is JsonArray && (isEmpty() || first() is JsonObject)
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ import kotlinx.serialization.json.*
* ABTest
*
* @param abTestID Unique A/B test identifier.
* @param clickSignificance
* @param conversionSignificance
* @param addToCartSignificance
* @param purchaseSignificance
* @param revenueSignificance
* @param updatedAt Date and time when the A/B test was last updated, in RFC 3339 format.
* @param createdAt Date and time when the A/B test was created, in RFC 3339 format.
* @param endAt End date and time of the A/B test, in RFC 3339 format.
* @param name A/B test name.
* @param status
* @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.
* @param clickSignificance
* @param conversionSignificance
* @param addToCartSignificance
* @param purchaseSignificance
* @param revenueSignificance
* @param configuration
*/
@Serializable
Expand All @@ -27,16 +27,6 @@ public data class ABTest(
/** Unique A/B test identifier. */
@SerialName(value = "abTestID") val abTestID: Int,

@SerialName(value = "clickSignificance") val clickSignificance: Double,

@SerialName(value = "conversionSignificance") val conversionSignificance: Double,

@SerialName(value = "addToCartSignificance") val addToCartSignificance: Double,

@SerialName(value = "purchaseSignificance") val purchaseSignificance: Double,

@SerialName(value = "revenueSignificance") val revenueSignificance: Map<kotlin.String, Double>,

/** Date and time when the A/B test was last updated, in RFC 3339 format. */
@SerialName(value = "updatedAt") val updatedAt: String,

Expand All @@ -54,5 +44,15 @@ public data class ABTest(
/** 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. */
@SerialName(value = "variants") val variants: List<Variant>,

@SerialName(value = "clickSignificance") val clickSignificance: Double? = null,

@SerialName(value = "conversionSignificance") val conversionSignificance: Double? = null,

@SerialName(value = "addToCartSignificance") val addToCartSignificance: Double? = null,

@SerialName(value = "purchaseSignificance") val purchaseSignificance: Double? = null,

@SerialName(value = "revenueSignificance") val revenueSignificance: Map<kotlin.String, Double>? = null,

@SerialName(value = "configuration") val configuration: ABTestConfiguration? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ public sealed interface AddABTestsVariant {
internal class AddABTestsVariantSerializer : JsonContentPolymorphicSerializer<AddABTestsVariant>(AddABTestsVariant::class) {
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<AddABTestsVariant> {
return when {
element is JsonObject && element.containsKey("customSearchParameters") -> AbTestsVariantSearchParams.serializer()
element is JsonObject -> AbTestsVariant.serializer()
element is JsonObject -> AbTestsVariantSearchParams.serializer()
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@ import kotlinx.serialization.json.*
* Variant
*
* @param addToCartCount Number of add-to-cart events for this variant.
* @param addToCartRate [Add-to-cart rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#add-to-cart-rate) for this variant.
* @param averageClickPosition [Average click position](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-position) for this variant.
* @param clickCount Number of click events for this variant.
* @param clickThroughRate [Click-through rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-through-rate) for this variant.
* @param conversionCount Number of click events for this variant.
* @param conversionRate [Conversion rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#conversion-rate) for this variant.
* @param description Description for this variant.
* @param index Index name of the A/B test variant (case-sensitive).
* @param noResultCount Number of [searches without results](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#searches-without-results) for this variant.
* @param purchaseCount Number of purchase events for this variant.
* @param purchaseRate [Purchase rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#purchase-rate) for this variant.
* @param searchCount Number of searches for this variant.
* @param trafficPercentage Percentage of search requests each variant receives.
* @param userCount Number of users that made searches to this variant.
* @param trackedUserCount Number of users that made tracked searches to this variant.
* @param addToCartRate [Add-to-cart rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#add-to-cart-rate) for this variant.
* @param averageClickPosition [Average click position](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-position) for this variant.
* @param clickThroughRate [Click-through rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-through-rate) for this variant.
* @param conversionRate [Conversion rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#conversion-rate) for this variant.
* @param currencies A/B test currencies.
* @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.
* @param filterEffects
* @param purchaseRate [Purchase rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#purchase-rate) for this variant.
* @param trackedSearchCount Number of tracked searches. Tracked searches are search requests where the `clickAnalytics` parameter is true.
*/
@Serializable
Expand All @@ -34,24 +34,12 @@ public data class Variant(
/** Number of add-to-cart events for this variant. */
@SerialName(value = "addToCartCount") val addToCartCount: Int,

/** [Add-to-cart rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#add-to-cart-rate) for this variant. */
@SerialName(value = "addToCartRate") val addToCartRate: Double,

/** [Average click position](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-position) for this variant. */
@SerialName(value = "averageClickPosition") val averageClickPosition: Int,

/** Number of click events for this variant. */
@SerialName(value = "clickCount") val clickCount: Int,

/** [Click-through rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-through-rate) for this variant. */
@SerialName(value = "clickThroughRate") val clickThroughRate: Double,

/** Number of click events for this variant. */
@SerialName(value = "conversionCount") val conversionCount: Int,

/** [Conversion rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#conversion-rate) for this variant. */
@SerialName(value = "conversionRate") val conversionRate: Double,

/** Description for this variant. */
@SerialName(value = "description") val description: String,

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

/** [Purchase rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#purchase-rate) for this variant. */
@SerialName(value = "purchaseRate") val purchaseRate: Double,

/** Number of searches for this variant. */
@SerialName(value = "searchCount") val searchCount: Int,

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

/** [Add-to-cart rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#add-to-cart-rate) for this variant. */
@SerialName(value = "addToCartRate") val addToCartRate: Double? = null,

/** [Average click position](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-position) for this variant. */
@SerialName(value = "averageClickPosition") val averageClickPosition: Int? = null,

/** [Click-through rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#click-through-rate) for this variant. */
@SerialName(value = "clickThroughRate") val clickThroughRate: Double? = null,

/** [Conversion rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#conversion-rate) for this variant. */
@SerialName(value = "conversionRate") val conversionRate: Double? = null,

/** A/B test currencies. */
@SerialName(value = "currencies") val currencies: Map<kotlin.String, Currency>? = null,

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

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

/** [Purchase rate](https://www.algolia.com/doc/guides/search-analytics/concepts/metrics/#purchase-rate) for this variant. */
@SerialName(value = "purchaseRate") val purchaseRate: Double? = null,

/** Number of tracked searches. Tracked searches are search requests where the `clickAnalytics` parameter is true. */
@SerialName(value = "trackedSearchCount") val trackedSearchCount: Int? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ public sealed interface AuthInput {
internal class AuthInputSerializer : JsonContentPolymorphicSerializer<AuthInput>(AuthInput::class) {
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<AuthInput> {
return when {
element is JsonObject -> AuthGoogleServiceAccount.serializer()
element is JsonObject -> AuthBasic.serializer()
element is JsonObject -> AuthAPIKey.serializer()
element is JsonObject -> AuthOAuth.serializer()
element is JsonObject && element.containsKey("url") && element.containsKey("client_id") && element.containsKey("client_secret") -> AuthOAuth.serializer()
element is JsonObject && element.containsKey("clientEmail") && element.containsKey("privateKey") -> AuthGoogleServiceAccount.serializer()
element is JsonObject && element.containsKey("username") && element.containsKey("password") -> AuthBasic.serializer()
element is JsonObject && element.containsKey("key") -> AuthAPIKey.serializer()
element is JsonObject -> AuthAlgolia.serializer()
element is JsonObject -> AuthAlgoliaInsights.serializer()
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ public sealed interface AuthInputPartial {
internal class AuthInputPartialSerializer : JsonContentPolymorphicSerializer<AuthInputPartial>(AuthInputPartial::class) {
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<AuthInputPartial> {
return when {
element is JsonObject -> AuthGoogleServiceAccountPartial.serializer()
element is JsonObject -> AuthBasicPartial.serializer()
element is JsonObject -> AuthAPIKeyPartial.serializer()
element is JsonObject -> AuthOAuthPartial.serializer()
element is JsonObject && element.containsKey("clientEmail") -> AuthGoogleServiceAccountPartial.serializer()
element is JsonObject && element.containsKey("username") -> AuthBasicPartial.serializer()
element is JsonObject && element.containsKey("key") -> AuthAPIKeyPartial.serializer()
element is JsonObject && element.containsKey("url") -> AuthOAuthPartial.serializer()
element is JsonObject -> AuthAlgoliaPartial.serializer()
element is JsonObject -> AuthAlgoliaInsightsPartial.serializer()
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ import kotlinx.serialization.json.*
* SourceInput
*
* Implementations:
* - [SourceGA4BigQueryExport]
* - [SourceBigCommerce]
* - [SourceBigQuery]
* - [SourceCommercetools]
* - [SourceCSV]
* - [SourceCommercetools]
* - [SourceDocker]
* - [SourceGA4BigQueryExport]
* - [SourceJSON]
* - [SourceShopify]
*/
Expand All @@ -32,14 +32,14 @@ public sealed interface SourceInput {
internal class SourceInputSerializer : JsonContentPolymorphicSerializer<SourceInput>(SourceInput::class) {
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<SourceInput> {
return when {
element is JsonObject && element.containsKey("registry") && element.containsKey("image") && element.containsKey("imageType") && element.containsKey("configuration") -> SourceDocker.serializer()
element is JsonObject && element.containsKey("projectID") && element.containsKey("datasetID") && element.containsKey("tablePrefix") -> SourceGA4BigQueryExport.serializer()
element is JsonObject && element.containsKey("projectKey") -> SourceCommercetools.serializer()
element is JsonObject && element.containsKey("storeHash") -> SourceBigCommerce.serializer()
element is JsonObject && element.containsKey("projectID") -> SourceBigQuery.serializer()
element is JsonObject && element.containsKey("projectID") && element.containsKey("datasetID") && element.containsKey("tablePrefix") -> SourceGA4BigQueryExport.serializer()
element is JsonObject && element.containsKey("shopURL") -> SourceShopify.serializer()
element is JsonObject -> SourceJSON.serializer()
element is JsonObject -> SourceCSV.serializer()
element is JsonObject -> SourceDocker.serializer()
element is JsonObject -> SourceShopify.serializer()
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ import kotlinx.serialization.json.*
* SourceUpdateInput
*
* Implementations:
* - [SourceGA4BigQueryExport]
* - [SourceBigQuery]
* - [SourceCSV]
* - [SourceGA4BigQueryExport]
* - [SourceJSON]
* - [SourceUpdateCommercetools]
* - [SourceUpdateDocker]
Expand All @@ -31,12 +31,12 @@ public sealed interface SourceUpdateInput {
internal class SourceUpdateInputSerializer : JsonContentPolymorphicSerializer<SourceUpdateInput>(SourceUpdateInput::class) {
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<SourceUpdateInput> {
return when {
element is JsonObject && element.containsKey("projectID") -> SourceBigQuery.serializer()
element is JsonObject && element.containsKey("projectID") && element.containsKey("datasetID") && element.containsKey("tablePrefix") -> SourceGA4BigQueryExport.serializer()
element is JsonObject && element.containsKey("projectID") -> SourceBigQuery.serializer()
element is JsonObject && element.containsKey("configuration") -> SourceUpdateDocker.serializer()
element is JsonObject -> SourceUpdateCommercetools.serializer()
element is JsonObject -> SourceJSON.serializer()
element is JsonObject -> SourceCSV.serializer()
element is JsonObject -> SourceUpdateDocker.serializer()
element is JsonObject -> SourceUpdateShopify.serializer()
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ public sealed interface TaskCreateTrigger {
internal class TaskCreateTriggerSerializer : JsonContentPolymorphicSerializer<TaskCreateTrigger>(TaskCreateTrigger::class) {
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<TaskCreateTrigger> {
return when {
element is JsonObject && element.containsKey("cron") -> ScheduleTriggerInput.serializer()
element is JsonObject -> OnDemandTriggerInput.serializer()
element is JsonObject -> ScheduleTriggerInput.serializer()
element is JsonObject -> SubscriptionTrigger.serializer()
element is JsonObject -> StreamingTrigger.serializer()
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ public sealed interface TaskInput {
internal class TaskInputSerializer : JsonContentPolymorphicSerializer<TaskInput>(TaskInput::class) {
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<TaskInput> {
return when {
element is JsonObject -> StreamingInput.serializer()
element is JsonObject -> DockerStreamsInput.serializer()
element is JsonObject && element.containsKey("mapping") -> StreamingInput.serializer()
element is JsonObject && element.containsKey("streams") -> DockerStreamsInput.serializer()
element is JsonObject -> ShopifyInput.serializer()
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
}
Expand Down
Loading

0 comments on commit f2ff341

Please sign in to comment.