From 90aeb5e50aebae1ab46c95da9c6fced9648fe63a Mon Sep 17 00:00:00 2001 From: Bronson Graansma Date: Thu, 6 Apr 2023 15:06:24 -0400 Subject: [PATCH] use oas Header class instead of ResponseHeader class --- .../kompendium/core/metadata/ResponseInfo.kt | 8 ++++---- .../kompendium/core/util/NotarizedOpenApi.kt | 6 +++--- ...6__notarized_get_with_response_headers.json | 8 ++++++-- .../io/bkbn/kompendium/oas/payload/Response.kt | 2 +- .../kompendium/oas/payload/ResponseHeader.kt | 18 ------------------ 5 files changed, 14 insertions(+), 28 deletions(-) delete mode 100644 oas/src/main/kotlin/io/bkbn/kompendium/oas/payload/ResponseHeader.kt diff --git a/core/src/main/kotlin/io/bkbn/kompendium/core/metadata/ResponseInfo.kt b/core/src/main/kotlin/io/bkbn/kompendium/core/metadata/ResponseInfo.kt index 53694652b..f4a970e43 100644 --- a/core/src/main/kotlin/io/bkbn/kompendium/core/metadata/ResponseInfo.kt +++ b/core/src/main/kotlin/io/bkbn/kompendium/core/metadata/ResponseInfo.kt @@ -1,8 +1,8 @@ package io.bkbn.kompendium.core.metadata import io.bkbn.kompendium.enrichment.TypeEnrichment +import io.bkbn.kompendium.oas.payload.Header import io.bkbn.kompendium.oas.payload.MediaType -import io.bkbn.kompendium.oas.payload.ResponseHeader import io.ktor.http.HttpStatusCode import kotlin.reflect.KType import kotlin.reflect.typeOf @@ -14,7 +14,7 @@ class ResponseInfo private constructor( val description: String, val examples: Map?, val mediaTypes: Set, - val responseHeaders: Map? + val responseHeaders: Map? ) { companion object { @@ -32,9 +32,9 @@ class ResponseInfo private constructor( private var description: String? = null private var examples: Map? = null private var mediaTypes: Set? = null - private var responseHeaders: Map? = null + private var responseHeaders: Map? = null - fun responseHeaders(headers: Map) = apply { + fun responseHeaders(headers: Map) = apply { this.responseHeaders = headers } diff --git a/core/src/test/kotlin/io/bkbn/kompendium/core/util/NotarizedOpenApi.kt b/core/src/test/kotlin/io/bkbn/kompendium/core/util/NotarizedOpenApi.kt index f6baa0029..9d6b2dfe4 100644 --- a/core/src/test/kotlin/io/bkbn/kompendium/core/util/NotarizedOpenApi.kt +++ b/core/src/test/kotlin/io/bkbn/kompendium/core/util/NotarizedOpenApi.kt @@ -20,8 +20,8 @@ import io.bkbn.kompendium.core.util.TestModules.defaultPathSummary import io.bkbn.kompendium.core.util.TestModules.defaultResponseDescription import io.bkbn.kompendium.core.util.TestModules.rootPath import io.bkbn.kompendium.json.schema.definition.TypeDefinition +import io.bkbn.kompendium.oas.payload.Header import io.bkbn.kompendium.oas.payload.Parameter -import io.bkbn.kompendium.oas.payload.ResponseHeader import io.ktor.http.HttpHeaders import io.ktor.http.HttpStatusCode import io.ktor.server.application.call @@ -69,11 +69,11 @@ fun Routing.responseHeaders() { description(defaultResponseDescription) responseHeaders( mapOf( - HttpHeaders.ETag to ResponseHeader( + HttpHeaders.ETag to Header( TypeDefinition.STRING, "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag" ), - HttpHeaders.LastModified to ResponseHeader( + HttpHeaders.LastModified to Header( TypeDefinition.STRING, "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified" ), diff --git a/core/src/test/resources/T0066__notarized_get_with_response_headers.json b/core/src/test/resources/T0066__notarized_get_with_response_headers.json index ae3a10f04..a7e6d991a 100644 --- a/core/src/test/resources/T0066__notarized_get_with_response_headers.json +++ b/core/src/test/resources/T0066__notarized_get_with_response_headers.json @@ -41,13 +41,17 @@ "schema": { "type": "string" }, - "description": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag" + "description": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag", + "required": true, + "deprecated": false }, "Last-Modified": { "schema": { "type": "string" }, - "description": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified" + "description": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified", + "required": true, + "deprecated": false } }, "content": { diff --git a/oas/src/main/kotlin/io/bkbn/kompendium/oas/payload/Response.kt b/oas/src/main/kotlin/io/bkbn/kompendium/oas/payload/Response.kt index 1397f1158..aa8350688 100644 --- a/oas/src/main/kotlin/io/bkbn/kompendium/oas/payload/Response.kt +++ b/oas/src/main/kotlin/io/bkbn/kompendium/oas/payload/Response.kt @@ -16,7 +16,7 @@ import kotlinx.serialization.Serializable @Serializable data class Response( val description: String, - val headers: Map? = null, + val headers: Map? = null, val content: Map? = null, val links: Map? = null ) diff --git a/oas/src/main/kotlin/io/bkbn/kompendium/oas/payload/ResponseHeader.kt b/oas/src/main/kotlin/io/bkbn/kompendium/oas/payload/ResponseHeader.kt deleted file mode 100644 index 09426c9fb..000000000 --- a/oas/src/main/kotlin/io/bkbn/kompendium/oas/payload/ResponseHeader.kt +++ /dev/null @@ -1,18 +0,0 @@ -package io.bkbn.kompendium.oas.payload - -import io.bkbn.kompendium.json.schema.definition.JsonSchema -import kotlinx.serialization.Serializable - -/** - * Describes a header object - * https://spec.openapis.org/oas/v3.1.0#header-object - * - * @param description A brief description of the parameter. - * This is valid only for query parameters and allows sending a parameter with an empty value. - */ -@Serializable -data class ResponseHeader( - val schema: JsonSchema, - val description: String? = null - // todo support styling https://spec.openapis.org/oas/v3.1.0#style-values -)