Skip to content

Commit 379dcd7

Browse files
algolia-botkai687millotp
committed
fix(specs): built-in ops accept also int (generated)
algolia/api-clients-automation#3450 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Kai Welke <[email protected]> Co-authored-by: Pierre Millot <[email protected]>
1 parent 5d91089 commit 379dcd7

File tree

2 files changed

+51
-3
lines changed

2 files changed

+51
-3
lines changed

client/src/commonMain/kotlin/com/algolia/client/model/search/BuiltInOperation.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@ import kotlinx.serialization.json.*
88
* Update to perform on the attribute.
99
*
1010
* @param operation
11-
* @param `value` Value that corresponds to the operation, for example an `Increment` or `Decrement` step, or an `Add` or `Remove` value.
11+
* @param `value`
1212
*/
1313
@Serializable
1414
public data class BuiltInOperation(
1515

1616
@SerialName(value = "_operation") val operation: BuiltInOperationType,
1717

18-
/** Value that corresponds to the operation, for example an `Increment` or `Decrement` step, or an `Add` or `Remove` value. */
19-
@SerialName(value = "value") val `value`: String,
18+
@SerialName(value = "value") val `value`: BuiltInOperationValue,
2019
) : AttributeToUpdate
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/** Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT. */
2+
package com.algolia.client.model.search
3+
4+
import com.algolia.client.exception.AlgoliaClientException
5+
import com.algolia.client.extensions.internal.*
6+
import kotlinx.serialization.*
7+
import kotlinx.serialization.builtins.*
8+
import kotlinx.serialization.descriptors.*
9+
import kotlinx.serialization.encoding.*
10+
import kotlinx.serialization.json.*
11+
import kotlin.jvm.JvmInline
12+
13+
/**
14+
* BuiltInOperationValue
15+
*
16+
* Implementations:
17+
* - [Int] - *[BuiltInOperationValue.of]*
18+
* - [String] - *[BuiltInOperationValue.of]*
19+
*/
20+
@Serializable(BuiltInOperationValueSerializer::class)
21+
public sealed interface BuiltInOperationValue {
22+
@Serializable
23+
@JvmInline
24+
public value class StringValue(public val value: String) : BuiltInOperationValue
25+
26+
@Serializable
27+
@JvmInline
28+
public value class IntValue(public val value: Int) : BuiltInOperationValue
29+
30+
public companion object {
31+
32+
public fun of(value: String): BuiltInOperationValue {
33+
return StringValue(value)
34+
}
35+
public fun of(value: Int): BuiltInOperationValue {
36+
return IntValue(value)
37+
}
38+
}
39+
}
40+
41+
internal class BuiltInOperationValueSerializer : JsonContentPolymorphicSerializer<BuiltInOperationValue>(BuiltInOperationValue::class) {
42+
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<BuiltInOperationValue> {
43+
return when {
44+
element.isString -> BuiltInOperationValue.StringValue.serializer()
45+
element.isInt -> BuiltInOperationValue.IntValue.serializer()
46+
else -> throw AlgoliaClientException("Failed to deserialize json element: $element")
47+
}
48+
}
49+
}

0 commit comments

Comments
 (0)