[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
This commit is contained in:
Reinhard-PTV 2022-11-29 10:11:30 +01:00 committed by GitHub
parent c5e79681c5
commit 6c9246ca3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 12 additions and 6 deletions

View File

@ -5071,7 +5071,6 @@ public class DefaultCodegen implements CodegenConfig {
properties.entrySet().stream()
.map(entry -> {
CodegenProperty property = fromProperty(entry.getKey(), entry.getValue(), requiredVarNames.contains(entry.getKey()));
property.baseName = codegenParameter.baseName + "[" + entry.getKey() + "]";
return property;
}).collect(Collectors.toList());
} else {

View File

@ -351,10 +351,10 @@ public class {{classname}} {
if ({{paramName}} != null) {
{{#items.vars}}
{{#isArray}}
localVarQueryParams.addAll(ApiClient.parameterToPairs("csv", "{{baseName}}", {{paramName}}.{{getter}}()));
localVarQueryParams.addAll(ApiClient.parameterToPairs("csv", "{{paramName}}[{{name}}]", {{paramName}}.{{getter}}()));
{{/isArray}}
{{^isArray}}
localVarQueryParams.addAll(ApiClient.parameterToPairs("{{baseName}}", {{paramName}}.{{getter}}()));
localVarQueryParams.addAll(ApiClient.parameterToPairs("{{paramName}}[{{name}}]", {{paramName}}.{{getter}}()));
{{/isArray}}
{{/items.vars}}
}

View File

@ -333,7 +333,7 @@ namespace {{packageName}}.{{apiPackage}}
{{#items.vars}}
if ({{paramName}}.{{name}} != null)
{
localVarRequestOptions.QueryParameters.Add({{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{collectionFormat}}", "{{baseName}}", {{paramName}}.{{name}}));
localVarRequestOptions.QueryParameters.Add({{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{collectionFormat}}", "{{paramName}}[{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}]", {{paramName}}.{{name}}));
}
{{/items.vars}}
{{^items}}

View File

@ -59,6 +59,6 @@ public class CSharpNetCoreClientDeepObjectTest {
generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false");
generator.opts(input).generate();
assertFileContains(Paths.get(outputPath + "/src/Org.OpenAPITools/Api/DefaultApi.cs"),
"options[a]", "options[b]");
"options[a]", "options[b]","inputOptions[b]");
}
}

View File

@ -58,6 +58,6 @@ public class JavaClientDeepObjectTest {
generator.opts(input).generate();
assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/client/api/DefaultApi.java"),
"options[a]", "options[b]", "\"csv\", \"options[c]\"");
"options[a]", "options[b]", "\"csv\", \"options[c]\"", "inputOptions[a]");
}
}

View File

@ -14,6 +14,13 @@ paths:
schema:
$ref: '#/components/schemas/Options'
explode: true
- name: inputOptions
in: query
required: false
style: deepObject
schema:
$ref: '#/components/schemas/Options'
explode: true
responses:
'200':
description: OK