From c50f7f7ccc48d1d6fc20b06667d20501bd2a5b85 Mon Sep 17 00:00:00 2001 From: Gennadi Kudrjavtsev Date: Sun, 20 Feb 2022 01:33:13 +0200 Subject: [PATCH] Fix: Unable to use sealed typed collections #199 (#200) --- CHANGELOG.md | 1 + .../io/bkbn/kompendium/core/handler/CollectionHandler.kt | 2 +- .../src/test/resources/polymorphic_list_response.json | 4 ---- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd81a2565..9ae2f43f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Added ### Changed +- Fixed sealed typed collections schema generation ### Remove diff --git a/kompendium-core/src/main/kotlin/io/bkbn/kompendium/core/handler/CollectionHandler.kt b/kompendium-core/src/main/kotlin/io/bkbn/kompendium/core/handler/CollectionHandler.kt index 101b455f9..0903f1cba 100644 --- a/kompendium-core/src/main/kotlin/io/bkbn/kompendium/core/handler/CollectionHandler.kt +++ b/kompendium-core/src/main/kotlin/io/bkbn/kompendium/core/handler/CollectionHandler.kt @@ -27,7 +27,6 @@ object CollectionHandler : SchemaHandler { val collectionClass = collectionType.classifier as KClass<*> logger.debug("Obtained collection class: $collectionClass") val referenceName = Helpers.genericNameAdapter(type, clazz) - generateKTypeKontent(collectionType, cache) val valueReference = when (collectionClass.isSealed) { true -> { val subTypes = gatherSubTypes(collectionType) @@ -39,6 +38,7 @@ object CollectionHandler : SchemaHandler { }) } false -> { + generateKTypeKontent(collectionType, cache) val schema = cache[collectionClass.simpleName] ?: error("${collectionClass.simpleName} not found") val slug = collectionClass.simpleName!! postProcessSchema(schema, slug) diff --git a/kompendium-core/src/test/resources/polymorphic_list_response.json b/kompendium-core/src/test/resources/polymorphic_list_response.json index 8dc0f4807..2898dba9c 100644 --- a/kompendium-core/src/test/resources/polymorphic_list_response.json +++ b/kompendium-core/src/test/resources/polymorphic_list_response.json @@ -60,10 +60,6 @@ }, "components": { "schemas": { - "FlibbityGibbit": { - "properties": {}, - "type": "object" - }, "SimpleGibbit": { "properties": { "a": {