Skip to content

Commit 9db3bf9

Browse files
feat(specs): add fields for metadata in composition injectedItems (generated)
algolia/api-clients-automation#5241 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Gavin Wade <[email protected]>
1 parent beff67d commit 9db3bf9

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

client/src/commonMain/kotlin/com/algolia/client/model/composition/Hit.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import kotlinx.serialization.json.*
1515
* @param snippetResult Snippets that show the context around a matching search query.
1616
* @param rankingInfo
1717
* @param distinctSeqID
18+
* @param extra
1819
*/
1920
@Serializable(HitSerializer::class)
2021
public data class Hit(
@@ -32,6 +33,8 @@ public data class Hit(
3233

3334
val distinctSeqID: Int? = null,
3435

36+
val extra: HitMetadata? = null,
37+
3538
val additionalProperties: Map<String, JsonElement>? = null,
3639
)
3740

@@ -43,6 +46,7 @@ internal object HitSerializer : KSerializer<Hit> {
4346
element<Map<kotlin.String, SnippetResult>>("_snippetResult", isOptional = true)
4447
element<HitRankingInfo>("_rankingInfo", isOptional = true)
4548
element<Int>("_distinctSeqID", isOptional = true)
49+
element<HitMetadata>("_extra", isOptional = true)
4650
}
4751

4852
override fun deserialize(decoder: Decoder): Hit {
@@ -54,6 +58,7 @@ internal object HitSerializer : KSerializer<Hit> {
5458
snippetResult = tree["_snippetResult"]?.let { input.json.decodeFromJsonElement(it) },
5559
rankingInfo = tree["_rankingInfo"]?.let { input.json.decodeFromJsonElement(it) },
5660
distinctSeqID = tree["_distinctSeqID"]?.let { input.json.decodeFromJsonElement(it) },
61+
extra = tree["_extra"]?.let { input.json.decodeFromJsonElement(it) },
5762
additionalProperties = tree.filterKeys { it !in descriptor.elementNames },
5863
)
5964
}
@@ -66,6 +71,7 @@ internal object HitSerializer : KSerializer<Hit> {
6671
value.snippetResult?.let { put("_snippetResult", output.json.encodeToJsonElement(it)) }
6772
value.rankingInfo?.let { put("_rankingInfo", output.json.encodeToJsonElement(it)) }
6873
value.distinctSeqID?.let { put("_distinctSeqID", output.json.encodeToJsonElement(it)) }
74+
value.extra?.let { put("_extra", output.json.encodeToJsonElement(it)) }
6975
value.additionalProperties?.onEach { (key, element) -> put(key, element) }
7076
}
7177
(encoder as JsonEncoder).encodeJsonElement(json)
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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.composition
3+
4+
import com.algolia.client.extensions.internal.*
5+
import kotlinx.serialization.*
6+
import kotlinx.serialization.descriptors.*
7+
import kotlinx.serialization.encoding.*
8+
import kotlinx.serialization.json.*
9+
10+
/**
11+
* An object that contains the extra key-value pairs provided in the injectedItem definition.
12+
*
13+
* @param injectedItemKey The key of the injectedItem that inserted this metadata.
14+
*/
15+
@Serializable(HitMetadataSerializer::class)
16+
public data class HitMetadata(
17+
18+
/** The key of the injectedItem that inserted this metadata. */
19+
val injectedItemKey: String? = null,
20+
21+
val additionalProperties: Map<String, JsonElement>? = null,
22+
)
23+
24+
internal object HitMetadataSerializer : KSerializer<HitMetadata> {
25+
26+
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("HitMetadata") {
27+
element<String>("_injectedItemKey", isOptional = true)
28+
}
29+
30+
override fun deserialize(decoder: Decoder): HitMetadata {
31+
val input = decoder.asJsonDecoder()
32+
val tree = input.decodeJsonObject()
33+
return HitMetadata(
34+
injectedItemKey = tree["_injectedItemKey"]?.let { input.json.decodeFromJsonElement(it) },
35+
additionalProperties = tree.filterKeys { it !in descriptor.elementNames },
36+
)
37+
}
38+
39+
override fun serialize(encoder: Encoder, value: HitMetadata) {
40+
val output = encoder.asJsonEncoder()
41+
val json = buildJsonObject {
42+
value.injectedItemKey?.let { put("_injectedItemKey", output.json.encodeToJsonElement(it)) }
43+
value.additionalProperties?.onEach { (key, element) -> put(key, element) }
44+
}
45+
(encoder as JsonEncoder).encodeJsonElement(json)
46+
}
47+
}

0 commit comments

Comments
 (0)