Skip to content

Commit 6c9246c

Browse files
authored
[BUG] [client] [java] [native] [csharp-netcore] Multi use of schema params within deepobjects (#13662)
* multiple use of parameters in deepobjects * fix java native * support camelCase * revert modifying baseName because it is not used anymore * remove commented line
1 parent c5e7968 commit 6c9246c

File tree

6 files changed

+12
-6
lines changed

6 files changed

+12
-6
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5071,7 +5071,6 @@ public CodegenParameter fromParameter(Parameter parameter, Set<String> imports)
50715071
properties.entrySet().stream()
50725072
.map(entry -> {
50735073
CodegenProperty property = fromProperty(entry.getKey(), entry.getValue(), requiredVarNames.contains(entry.getKey()));
5074-
property.baseName = codegenParameter.baseName + "[" + entry.getKey() + "]";
50755074
return property;
50765075
}).collect(Collectors.toList());
50775076
} else {

modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,10 +351,10 @@ public class {{classname}} {
351351
if ({{paramName}} != null) {
352352
{{#items.vars}}
353353
{{#isArray}}
354-
localVarQueryParams.addAll(ApiClient.parameterToPairs("csv", "{{baseName}}", {{paramName}}.{{getter}}()));
354+
localVarQueryParams.addAll(ApiClient.parameterToPairs("csv", "{{paramName}}[{{name}}]", {{paramName}}.{{getter}}()));
355355
{{/isArray}}
356356
{{^isArray}}
357-
localVarQueryParams.addAll(ApiClient.parameterToPairs("{{baseName}}", {{paramName}}.{{getter}}()));
357+
localVarQueryParams.addAll(ApiClient.parameterToPairs("{{paramName}}[{{name}}]", {{paramName}}.{{getter}}()));
358358
{{/isArray}}
359359
{{/items.vars}}
360360
}

modules/openapi-generator/src/main/resources/csharp-netcore/api.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ namespace {{packageName}}.{{apiPackage}}
333333
{{#items.vars}}
334334
if ({{paramName}}.{{name}} != null)
335335
{
336-
localVarRequestOptions.QueryParameters.Add({{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{collectionFormat}}", "{{baseName}}", {{paramName}}.{{name}}));
336+
localVarRequestOptions.QueryParameters.Add({{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{collectionFormat}}", "{{paramName}}[{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}]", {{paramName}}.{{name}}));
337337
}
338338
{{/items.vars}}
339339
{{^items}}

modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpNetCoreClientDeepObjectTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,6 @@ public void deepObject() throws IOException {
5959
generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false");
6060
generator.opts(input).generate();
6161
assertFileContains(Paths.get(outputPath + "/src/Org.OpenAPITools/Api/DefaultApi.cs"),
62-
"options[a]", "options[b]");
62+
"options[a]", "options[b]","inputOptions[b]");
6363
}
6464
}

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientDeepObjectTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,6 @@ public void deepObject() throws IOException {
5858
generator.opts(input).generate();
5959

6060
assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/client/api/DefaultApi.java"),
61-
"options[a]", "options[b]", "\"csv\", \"options[c]\"");
61+
"options[a]", "options[b]", "\"csv\", \"options[c]\"", "inputOptions[a]");
6262
}
6363
}

modules/openapi-generator/src/test/resources/3_0/deepobject.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ paths:
1414
schema:
1515
$ref: '#/components/schemas/Options'
1616
explode: true
17+
- name: inputOptions
18+
in: query
19+
required: false
20+
style: deepObject
21+
schema:
22+
$ref: '#/components/schemas/Options'
23+
explode: true
1724
responses:
1825
'200':
1926
description: OK

0 commit comments

Comments
 (0)