Skip to content

Commit 50e5741

Browse files
committed
Fixed Exception serializers messing with accept header types
1 parent 8748b06 commit 50e5741

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

src/main/kotlin/com/papsign/ktor/openapigen/content/type/ContentTypeResponder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import io.ktor.http.ContentType
66
import io.ktor.http.HttpStatusCode
77
import io.ktor.util.pipeline.PipelineContext
88

9-
class ContentTypeResponder(val responseSerializer: ResponseSerializer, val contentType: ContentType): Responder {
9+
data class ContentTypeResponder(val responseSerializer: ResponseSerializer, val contentType: ContentType): Responder {
1010
override suspend fun <T : Any> respond(response: T, request: PipelineContext<Unit, ApplicationCall>) {
1111
responseSerializer.respond(response, request, contentType)
1212
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.papsign.ktor.openapigen.content.type
2+
3+
data class SelectedExceptionSerializer(override val module: ResponseSerializer): SelectedModule

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.papsign.ktor.openapigen.OpenAPIGen
55
import com.papsign.ktor.openapigen.classLogger
66
import com.papsign.ktor.openapigen.content.type.ContentTypeProvider
77
import com.papsign.ktor.openapigen.content.type.ResponseSerializer
8+
import com.papsign.ktor.openapigen.content.type.SelectedExceptionSerializer
89
import com.papsign.ktor.openapigen.content.type.SelectedSerializer
910
import com.papsign.ktor.openapigen.modules.ModuleProvider
1011
import com.papsign.ktor.openapigen.modules.ofClass
@@ -25,7 +26,7 @@ object ThrowOperationHandler : OperationModule {
2526
provider.ofClass<ResponseSerializer>().mapNotNull {
2627
if (ex.contentType == unitKType) return@mapNotNull null
2728
val mediaType = it.getMediaType<Any>(ex.contentType, apiGen, provider, null, ContentTypeProvider.Usage.SERIALIZE) ?: return@mapNotNull null
28-
provider.registerModule(SelectedSerializer(it))
29+
provider.registerModule(SelectedExceptionSerializer(it))
2930
mediaType.map { Pair(it.key.toString(), it.value) }
3031
}
3132
}.flatten().groupBy { it.first }.mapValues {

0 commit comments

Comments
 (0)