Skip to content

Commit 9355457

Browse files
committed
fixed examples openapi definition not being properly structured
1 parent 5499cbb commit 9355457

File tree

4 files changed

+11
-5
lines changed

4 files changed

+11
-5
lines changed

src/main/kotlin/com/papsign/ktor/openapigen/model/operation/HeaderModel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.papsign.ktor.openapigen.model.operation
22

33
import com.papsign.ktor.openapigen.model.DataModel
4+
import com.papsign.ktor.openapigen.model.info.ExampleModel
45
import com.papsign.ktor.openapigen.model.schema.SchemaModel
56

67
data class HeaderModel<T>(
@@ -10,6 +11,6 @@ data class HeaderModel<T>(
1011
var allowEmptyValue: Boolean? = null,
1112
var schema: SchemaModel<T>? = null,
1213
var example: T? = null,
13-
var examples: MutableMap<String, T>? = null
14+
var examples: MutableMap<String, ExampleModel<T>>? = null
1415
// incomplete
1516
): DataModel
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package com.papsign.ktor.openapigen.model.operation
22

33
import com.papsign.ktor.openapigen.model.DataModel
4+
import com.papsign.ktor.openapigen.model.info.ExampleModel
45
import com.papsign.ktor.openapigen.model.schema.SchemaModel
56

67
data class MediaTypeModel<T>(
78
val schema: SchemaModel<T>? = null,
89
val example: T? = null,
9-
val examples: MutableMap<String, T>? = null,
10+
val examples: MutableMap<String, ExampleModel<T>>? = null,
1011
val encoding: Map<String, MediaTypeEncodingModel>? = null
1112
): DataModel

src/main/kotlin/com/papsign/ktor/openapigen/model/operation/ParameterModel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.papsign.ktor.openapigen.model.operation
22

33
import com.papsign.ktor.openapigen.model.DataModel
4+
import com.papsign.ktor.openapigen.model.info.ExampleModel
45
import com.papsign.ktor.openapigen.model.schema.SchemaModel
56
import com.papsign.ktor.openapigen.parameters.ParameterStyle
67

@@ -13,7 +14,7 @@ data class ParameterModel<T>(
1314
var allowEmptyValue: Boolean? = null,
1415
var schema: SchemaModel<T>? = null,
1516
var example: T? = null,
16-
var examples: MutableMap<String, T>? = null,
17+
var examples: MutableMap<String, ExampleModel<T>>? = null,
1718
var style: ParameterStyle<*>? = null,
1819
var explode: Boolean = false
1920
// incomplete

src/main/kotlin/com/papsign/ktor/openapigen/modules/handlers/ThrowOperationHandler.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.papsign.ktor.openapigen.classLogger
66
import com.papsign.ktor.openapigen.content.type.ContentTypeProvider
77
import com.papsign.ktor.openapigen.content.type.ResponseSerializer
88
import com.papsign.ktor.openapigen.content.type.SelectedExceptionSerializer
9+
import com.papsign.ktor.openapigen.model.info.ExampleModel
910
import com.papsign.ktor.openapigen.model.operation.MediaTypeModel
1011
import com.papsign.ktor.openapigen.model.operation.OperationModel
1112
import com.papsign.ktor.openapigen.model.operation.StatusResponseModel
@@ -35,9 +36,11 @@ object ThrowOperationHandler : OperationModule {
3536
schemas.size == 1 -> schemas.first()
3637
else -> SchemaModel.OneSchemaModelOf(schemas)
3738
}
38-
val examples = it.value.mapNotNull { (_, second) -> second.example }.withIndex().associate { (idx, value) -> "Example $idx" to value }.toMutableMap()
39+
val examples = it.value.mapNotNull { (_, second) ->
40+
second.example
41+
}.withIndex().associate { (idx, value) -> "Example $idx" to ExampleModel(value) }.toMutableMap()
3942
if (examples.size <= 1) {
40-
MediaTypeModel(schema, example = examples.values.firstOrNull())
43+
MediaTypeModel(schema, example = examples.values.firstOrNull()?.value)
4144
} else {
4245
MediaTypeModel(schema, examples = examples)
4346
}

0 commit comments

Comments
 (0)