Skip to content

Commit f5c61bb

Browse files
authored
Merge 02d5c38 into fff990f
2 parents fff990f + 02d5c38 commit f5c61bb

File tree

3 files changed

+26
-9
lines changed

3 files changed

+26
-9
lines changed

scripts/cts/testServer/apiKey.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import type { Express, Request, Response } from 'express';
55

66
import { setupServer } from '.';
77

8+
// Checks that the client sends a different API key after the first request.
89
function addRoutes(app: Express): void {
910
app.get('/check-api-key/1', (req: Request, res: Response) => {
1011
const headerName = 'x-algolia-api-key';

specs/recommend/common/schemas/RecommendationsResponse.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ recommendHit:
4141
$ref: '../../../common/schemas/Hit.yml#/distinctSeqID'
4242
_score:
4343
$ref: '#/recommendScore'
44+
x-discriminator-fields:
45+
- objectID
4446

4547
trendingFacetHit:
4648
type: object
@@ -56,6 +58,9 @@ trendingFacetHit:
5658
$ref: '../parameters.yml#/facetName'
5759
facetValue:
5860
$ref: '../parameters.yml#/facetValue'
61+
x-discriminator-fields:
62+
- facetName
63+
- facetValue
5964

6065
recommendScore:
6166
type: number

templates/kotlin/oneof_interface.mustache

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,9 @@ import kotlin.jvm.JvmInline
2626
@Serializable({{classname}}Serializer::class)
2727
public sealed interface {{classname}} {
2828
{{#composedSchemas.oneOf}}
29-
{{^isModel}}
30-
{{^isEnumRef}}
3129
@Serializable
3230
@JvmInline
3331
public value class {{#lambda.type-to-name}}{{{datatypeWithEnum}}}{{/lambda.type-to-name}}Value(public val value: {{{datatypeWithEnum}}}): {{classname}}
34-
{{/isEnumRef}}
35-
{{/isModel}}
3632
{{/composedSchemas.oneOf}}
3733

3834
public companion object {
@@ -62,13 +58,9 @@ public sealed interface {{classname}} {
6258

6359
{{^vendorExtensions.x-is-multi-array}}{{^vendorExtensions.x-is-multi-map}}
6460
{{#composedSchemas.oneOf}}
65-
{{^isModel}}
66-
{{^isEnumRef}}
6761
public fun of(value: {{{datatypeWithEnum}}}): {{classname}} {
6862
return {{#lambda.type-to-name}}{{{datatypeWithEnum}}}{{/lambda.type-to-name}}Value(value);
6963
}
70-
{{/isEnumRef}}
71-
{{/isModel}}
7264
{{/composedSchemas.oneOf}}
7365
{{/vendorExtensions.x-is-multi-map}}{{/vendorExtensions.x-is-multi-array}}
7466
}
@@ -78,14 +70,33 @@ internal class {{classname}}Serializer : JsonContentPolymorphicSerializer<{{clas
7870
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<{{classname}}> {
7971
return when {
8072
{{#composedSchemas.oneOf}}
73+
{{^isModel}}
74+
{{^isMap}}
75+
{{^isArray}}
76+
{{^isEnumRef}}
77+
{{^isInteger}}
78+
{{^isLong}}
79+
{{^isDouble}}
80+
{{^isBoolean}}
81+
{{^isPrimitiveType}}
82+
element is JsonObject{{#vendorExtensions.x-discriminator-fields}} && element.containsKey("{{{.}}}"){{/vendorExtensions.x-discriminator-fields}} -> {{{datatypeWithEnum}}}.serializer()
83+
{{/isPrimitiveType}}
84+
{{/isBoolean}}
85+
{{/isDouble}}
86+
{{/isLong}}
87+
{{/isInteger}}
88+
{{/isEnumRef}}
89+
{{/isArray}}
90+
{{/isMap}}
91+
{{/isModel}}
8192
{{#isModel}}
8293
element is JsonObject{{#vendorExtensions.x-discriminator-fields}} && element.containsKey("{{{.}}}"){{/vendorExtensions.x-discriminator-fields}} -> {{{datatypeWithEnum}}}.serializer()
8394
{{/isModel}}
8495
{{#isMap}}
8596
element is JsonObject -> {{classname}}.{{#lambda.type-to-name}}{{{datatypeWithEnum}}}{{/lambda.type-to-name}}Value.serializer()
8697
{{/isMap}}
8798
{{#isArray}}
88-
element{{#items}}{{#isModel}}.isJsonArrayOfObjects{{/isModel}}{{#isPrimitiveType}}.isJsonArrayOfPrimitives{{/isPrimitiveType}}{{^isModel}}{{^isPrimitiveType}} is JsonArray{{/isPrimitiveType}}{{/isModel}}{{/items}} -> {{{classname}}}.{{#lambda.type-to-name}}{{{datatypeWithEnum}}}{{/lambda.type-to-name}}Value.serializer()
99+
element is JsonArray -> {{{classname}}}.{{#lambda.type-to-name}}{{{datatypeWithEnum}}}{{/lambda.type-to-name}}Value.serializer()
89100
{{/isArray}}
90101
{{#isEnumRef}}
91102
element.isString -> {{{datatypeWithEnum}}}.serializer()

0 commit comments

Comments
 (0)