Skip to content

Commit 086cb39

Browse files
committed
detect map mapping removed from core
1 parent 48e1312 commit 086cb39

2 files changed

Lines changed: 26 additions & 8 deletions

File tree

src/main/kotlin/io/openapiprocessor/spring/model/parameters/QueryParameter.kt

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,13 @@ package io.openapiprocessor.spring.model.parameters
88
import io.openapiprocessor.core.model.datatypes.DataType
99
import io.openapiprocessor.core.model.parameters.ParameterBase
1010
import io.openapiprocessor.core.model.datatypes.MappedDataType
11-
import io.openapiprocessor.core.model.datatypes.MappedMapDataType
1211
import io.openapiprocessor.core.model.datatypes.ObjectDataType
1312

13+
val Maps = listOf(
14+
Map::class.java.name,
15+
"org.springframework.util.MultiValueMap"
16+
)
17+
1418
/**
1519
* OpenAPI query parameter.
1620
*/
@@ -28,7 +32,7 @@ class QueryParameter(
2832
override val withAnnotation: Boolean
2933
get() {
3034
// Map should be annotated
31-
if (dataType is MappedMapDataType) {
35+
if (isMappedMap) {
3236
return true
3337
}
3438

@@ -40,7 +44,7 @@ class QueryParameter(
4044
// Mapped should NOT be annotated if it was object schema
4145
// Mapped should be annotated if it was a simple schema
4246
if (dataType is MappedDataType) {
43-
return dataType.simpleDataType
47+
return false
4448
}
4549

4650
return true
@@ -52,7 +56,7 @@ class QueryParameter(
5256
override val withParameters: Boolean
5357
get() {
5458
// Map should not have parameters
55-
if (dataType is MappedMapDataType) {
59+
if (isMappedMap) {
5660
return false
5761
}
5862

@@ -64,4 +68,13 @@ class QueryParameter(
6468
return true
6569
}
6670

71+
private val isMappedMap: Boolean
72+
get() {
73+
if (dataType !is MappedDataType) {
74+
return false
75+
}
76+
77+
val type = dataType.getImports().first()
78+
return Maps.contains(type)
79+
}
6780
}

src/test/groovy/io/openapiprocessor/spring/writer/java/MethodWriterSpec.groovy

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@
1616

1717
package io.openapiprocessor.spring.writer.java
1818

19+
import io.openapiprocessor.core.model.Documentation
20+
import io.openapiprocessor.core.model.datatypes.DataTypeName
21+
import io.openapiprocessor.core.model.datatypes.MappedDataType
1922
import io.openapiprocessor.core.writer.java.JavaDocWriter
2023
import io.openapiprocessor.spring.model.parameters.QueryParameter
2124
import io.openapiprocessor.spring.processor.SpringFrameworkAnnotations
2225
import io.openapiprocessor.core.converter.ApiOptions
2326
import io.openapiprocessor.core.model.EmptyResponse
2427
import io.openapiprocessor.core.model.Endpoint
2528
import io.openapiprocessor.core.model.HttpMethod
26-
import io.openapiprocessor.core.model.datatypes.MappedMapDataType
2729
import io.openapiprocessor.core.writer.java.BeanValidationFactory
2830
import io.openapiprocessor.core.writer.java.MethodWriter
2931
import spock.lang.Specification
@@ -45,7 +47,8 @@ class MethodWriterSpec extends Specification {
4547
properties.method as HttpMethod ?: HttpMethod.GET,
4648
properties.operationId as String ?: null,
4749
properties.deprecated as boolean ?: false,
48-
properties.description as String ?: null
50+
new Documentation(null, properties.description as String ?: null)
51+
4952
)
5053
ep.parameters = properties.parameters ?: []
5154
ep.responses = properties.responses ?: [:]
@@ -54,13 +57,15 @@ class MethodWriterSpec extends Specification {
5457
}
5558

5659
void "writes map from single query parameter" () {
60+
def dataTypeName = new DataTypeName('java.lang.String', 'java.lang.String')
61+
5762
def endpoint = createEndpoint (path: '/foo', method: HttpMethod.GET, responses: [
5863
'204': [new EmptyResponse()]
5964
], parameters: [
60-
new QueryParameter('foo', new MappedMapDataType (
65+
new QueryParameter('foo', new MappedDataType (
6166
'Map',
6267
'java.util',
63-
['java.lang.String', 'java.lang.String'],
68+
[dataTypeName, dataTypeName],
6469
null,
6570
false
6671
), false, false, null)

0 commit comments

Comments
 (0)