11package com.papsign.ktor.openapigen.modules.handlers
22
3- import com.papsign.ktor.openapigen.getKType
43import com.papsign.ktor.openapigen.OpenAPIGen
54import com.papsign.ktor.openapigen.annotations.Request
65import com.papsign.ktor.openapigen.classLogger
@@ -14,12 +13,11 @@ import com.papsign.ktor.openapigen.modules.ofType
1413import com.papsign.ktor.openapigen.modules.openapi.OperationModule
1514import com.papsign.ktor.openapigen.modules.providers.ParameterProvider
1615import com.papsign.ktor.openapigen.modules.registerModule
17- import kotlin.reflect.KClass
1816import kotlin.reflect.KType
1917import kotlin.reflect.full.findAnnotation
18+ import kotlin.reflect.jvm.jvmErasure
2019
2120class RequestHandlerModule <T : Any >(
22- val requestClass : KClass <T >,
2321 val requestType : KType ,
2422 val requestExample : T ? = null
2523) : OperationModule {
@@ -34,7 +32,7 @@ class RequestHandlerModule<T : Any>(
3432 mediaType.map { Pair (it.key.toString(), it.value) }
3533 }.flatten().associate { it }
3634
37- val requestMeta = requestClass .findAnnotation<Request >()
35+ val requestMeta = requestType.jvmErasure .findAnnotation<Request >()
3836
3937 val parameters = provider.ofType<ParameterProvider >().flatMap { it.getParameters(apiGen, provider) }
4038 operation.parameters = operation.parameters?.let { (it + parameters).distinct() } ? : parameters
@@ -51,7 +49,6 @@ class RequestHandlerModule<T : Any>(
5149 }
5250
5351 companion object {
54- inline fun <reified T : Any > create (requestExample : T ? = null) = RequestHandlerModule (T ::class ,
55- getKType<T >(), requestExample)
52+ fun <T : Any > create (tType : KType , requestExample : T ? = null) = RequestHandlerModule (tType, requestExample)
5653 }
5754}
0 commit comments