File tree Expand file tree Collapse file tree 3 files changed +57
-2
lines changed
openapi-processor-core/src
main/kotlin/io/openapiprocessor/core/parser/openapi4j
test/kotlin/io/openapiprocessor/core/parser/openapi4j Expand file tree Collapse file tree 3 files changed +57
-2
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import io.openapiprocessor.core.parser.RequestBody as ParserRequestBody
1212import io.openapiprocessor.core.parser.Response as ParserResponse
1313import org.openapi4j.parser.model.v3.Operation as O4jOperation
1414import org.openapi4j.parser.model.v3.Parameter as O4jParameter
15+ import org.openapi4j.parser.model.v3.Path as O4jPath
1516import org.openapi4j.parser.model.v3.Response as O4jResponse
1617
1718/* *
@@ -20,7 +21,8 @@ import org.openapi4j.parser.model.v3.Response as O4jResponse
2021class Operation (
2122 private val method : HttpMethod ,
2223 private val operation : O4jOperation ,
23- private val refResolver : RefResolverNative ,
24+ private val path : O4jPath ,
25+ private val refResolver : RefResolverNative
2426): ParserOperation {
2527
2628 override fun getMethod (): HttpMethod = method
@@ -32,6 +34,15 @@ class Operation(
3234 override fun getParameters (): List <ParserParameter > {
3335 val parameters = mutableListOf<ParserParameter >()
3436
37+ path.parameters?.map { p: O4jParameter ->
38+ var param = p
39+ if (p.isRef) {
40+ param = refResolver.resolve(p)
41+ }
42+
43+ parameters.add(Parameter (param))
44+ }
45+
3546 operation.parameters?.map { p: O4jParameter ->
3647 var param = p
3748 if (p.isRef) {
Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ class Path(
4040 HttpMethod .values().map {
4141 val op = info.getOperation(it.method)
4242 if (op != null ) {
43- ops.add (Operation (it, op, refResolver))
43+ ops.add (Operation (it, op, info, refResolver))
4444 }
4545 }
4646
Original file line number Diff line number Diff line change 1+ /*
2+ * Copyright 2021 https://github.com/openapi-processor/openapi-processor-core
3+ * PDX-License-Identifier: Apache-2.0
4+ */
5+
6+ package io.openapiprocessor.core.parser.openapi4j
7+
8+ import io.kotest.core.spec.style.StringSpec
9+ import io.kotest.matchers.collections.shouldNotBeEmpty
10+ import io.openapiprocessor.core.parser.ParserType
11+ import io.openapiprocessor.core.support.parse
12+
13+ class PathSpec : StringSpec ({
14+
15+ " operation contains endpoint level parameters" {
16+ val openApi = parse ("""
17+ openapi: 3.0.2
18+ info:
19+ title: parameter at endpoint
20+ version: 1.0.0
21+
22+ paths:
23+
24+ /foo:
25+ parameters:
26+ - schema:
27+ type: string
28+ name: bar
29+ in: query
30+ required: true
31+
32+ get:
33+ responses:
34+ '204':
35+ description: empty
36+ """.trimIndent(), ParserType .OPENAPI4J )
37+
38+ val path = openApi.getPaths()[" /foo" ]
39+ val op = path!!.getOperations().first()
40+
41+ op.getParameters().shouldNotBeEmpty()
42+ }
43+
44+ })
You can’t perform that action at this time.
0 commit comments