File tree Expand file tree Collapse file tree 2 files changed +4
-2
lines changed
src/main/kotlin/com/papsign/ktor/openapigen/modules/handlers Expand file tree Collapse file tree 2 files changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -7,9 +7,11 @@ import com.papsign.ktor.openapigen.classLogger
77import com.papsign.ktor.openapigen.content.type.BodyParser
88import com.papsign.ktor.openapigen.content.type.ContentTypeProvider
99import com.papsign.ktor.openapigen.content.type.SelectedParser
10+ import com.papsign.ktor.openapigen.generator.ParamBuilder
1011import com.papsign.ktor.openapigen.modules.ModuleProvider
1112import com.papsign.ktor.openapigen.modules.ofClass
1213import com.papsign.ktor.openapigen.modules.openapi.OperationModule
14+ import com.papsign.ktor.openapigen.modules.providers.ParameterProvider
1315import com.papsign.ktor.openapigen.openapi.MediaType
1416import com.papsign.ktor.openapigen.openapi.Operation
1517import com.papsign.ktor.openapigen.openapi.RequestBody
@@ -35,6 +37,8 @@ class RequestHandlerModule<T : Any>(
3537
3638 val requestMeta = requestClass.findAnnotation<Request >()
3739
40+ val parameters = provider.ofClass<ParameterProvider >().flatMap { it.getParameters(ParamBuilder (apiGen, provider)) }
41+ operation.parameters = operation.parameters?.let { (it + parameters).distinct() } ? : parameters
3842 operation.requestBody = operation.requestBody?.apply {
3943 map.forEach { (key, value) ->
4044 content.putIfAbsent(key, value)?.let { if (value != it) log.warn(" ContentType of $requestType request $key already registered, ignoring $value " ) }
Original file line number Diff line number Diff line change @@ -27,10 +27,8 @@ object RouteHandler: HandlerModule {
2727 if (methods.size > 1 ) error(" API cannot have two methods simultaneously: ${methods.map { it.method.value }} " )
2828 val paths = provider.ofClass<PathProvider >()
2929 val path = " /${paths.map { it.path.trim(' /' ) }.filter { it.isNotBlank() }.joinToString(" /" )} "
30- val parameters = provider.ofClass<ParameterProvider >().flatMap { it.getParameters(ParamBuilder (apiGen, provider)) }
3130 val operationModules = provider.ofClass<OperationModule >()
3231 apiGen.api.paths.getOrPut(path) { PathItem () }.also {pathItem ->
33- pathItem.parameters = (pathItem.parameters + parameters).distinct()
3432 methods.forEach {
3533 val name = it.method.value.toLowerCase()
3634 // if (pathItem.containsKey(name)) error("$path::$name already defined")
You can’t perform that action at this time.
0 commit comments