Skip to content

Commit

Permalink
[kotlin][client] Explode query param properly
Browse files Browse the repository at this point in the history
  • Loading branch information
maksim-kosolapov committed Feb 23, 2025
1 parent 670e9d7 commit ebc8854
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -208,17 +208,44 @@ import {{packageName}}.infrastructure.toMultiValue
{{#queryParams}}
{{^required}}
if ({{{paramName}}} != null) {
{{#isModel}}
{{#vars}}
if ({{{paramName}}}.{{baseName}} != null) {
put("{{#isDeepObject}}{{{paramName}}}[{{/isDeepObject}}{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}{{#isDeepObject}}]{{/isDeepObject}}", {{#isContainer}}toMultiValue({{{paramName}}}.{{baseName}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}.{{baseName}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}.{{baseName}}){{/isDate}}{{#isEnum}}{{#isString}}{{{paramName}}}.{{baseName}}.value{{/isString}}{{^isString}}{{{paramName}}}.{{baseName}}.toString(){{/isString}}{{/isEnum}}{{^isEnum}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.{{baseName}}.toString(){{/isDate}}{{/isDateTime}}{{/isEnum}}){{/isContainer}})
}
{{/vars}}
{{/isModel}}
{{^isModel}}
put("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{#isEnum}}{{#isString}}{{{paramName}}}.value{{/isString}}{{^isString}}{{{paramName}}}.toString(){{/isString}}{{/isEnum}}{{^isEnum}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}{{/isEnum}}){{/isContainer}})
{{/isModel}}
}
{{/required}}
{{#required}}
{{#isNullable}}
if ({{{paramName}}} != null) {
{{#isModel}}
{{#vars}}
if ({{{paramName}}}.{{baseName}} != null) {
put("{{#isDeepObject}}{{{paramName}}}[{{/isDeepObject}}{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}{{#isDeepObject}}]{{/isDeepObject}}", {{#isContainer}}toMultiValue({{{paramName}}}.{{baseName}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}.{{baseName}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}.{{baseName}}){{/isDate}}{{#isEnum}}{{#isString}}{{{paramName}}}.{{baseName}}.value{{/isString}}{{^isString}}{{{paramName}}}.{{baseName}}.toString(){{/isString}}{{/isEnum}}{{^isEnum}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.{{baseName}}.toString(){{/isDate}}{{/isDateTime}}{{/isEnum}}){{/isContainer}})
}
{{/vars}}
{{/isModel}}
{{^isModel}}
put("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{#isEnum}}{{#isString}}{{{paramName}}}.value{{/isString}}{{^isString}}{{{paramName}}}.toString(){{/isString}}{{/isEnum}}{{^isEnum}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}{{/isEnum}}){{/isContainer}})
{{/isModel}}
}
{{/isNullable}}
{{^isNullable}}
{{#isModel}}
{{#vars}}
if ({{{paramName}}}.{{baseName}} != null) {
put("{{#isDeepObject}}{{{paramName}}}[{{/isDeepObject}}{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}{{#isDeepObject}}]{{/isDeepObject}}", {{#isContainer}}toMultiValue({{{paramName}}}.{{baseName}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}.{{baseName}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}.{{baseName}}){{/isDate}}{{#isEnum}}{{#isString}}{{{paramName}}}.{{baseName}}.value{{/isString}}{{^isString}}{{{paramName}}}.{{baseName}}.toString(){{/isString}}{{/isEnum}}{{^isEnum}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.{{baseName}}.toString(){{/isDate}}{{/isDateTime}}{{/isEnum}}){{/isContainer}})
}
{{/vars}}
{{/isModel}}
{{^isModel}}
put("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{#isEnum}}{{#isString}}{{{paramName}}}.value{{/isString}}{{^isString}}{{{paramName}}}.toString(){{/isString}}{{/isEnum}}{{^isEnum}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}{{/isEnum}}){{/isContainer}})
{{/isModel}}
{{/isNullable}}
{{/required}}
{{/queryParams}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,24 @@ class QueryApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory =
val localVariableQuery: MultiValueMap = mutableMapOf<kotlin.String, kotlin.collections.List<kotlin.String>>()
.apply {
if (queryObject != null) {
put("query_object", listOf(queryObject.toString()))
if (queryObject.id != null) {
put("queryObject[id]", listOf(queryObject.id.toString()))
}
if (queryObject.name != null) {
put("queryObject[name]", listOf(queryObject.name.toString()))
}
if (queryObject.category != null) {
put("queryObject[category]", listOf(queryObject.category.toString()))
}
if (queryObject.photoUrls != null) {
put("queryObject[photoUrls]", toMultiValue(queryObject.photoUrls.toList(), ""))
}
if (queryObject.tags != null) {
put("queryObject[tags]", toMultiValue(queryObject.tags.toList(), ""))
}
if (queryObject.status != null) {
put("queryObject[status]", listOf(queryObject.status.value))
}
}
}
val localVariableHeaders: MutableMap<String, String> = mutableMapOf()
Expand Down Expand Up @@ -469,7 +486,9 @@ class QueryApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory =
val localVariableQuery: MultiValueMap = mutableMapOf<kotlin.String, kotlin.collections.List<kotlin.String>>()
.apply {
if (queryObject != null) {
put("query_object", listOf(queryObject.toString()))
if (queryObject.values != null) {
put("values", toMultiValue(queryObject.values.toList(), ""))
}
}
}
val localVariableHeaders: MutableMap<String, String> = mutableMapOf()
Expand Down Expand Up @@ -547,7 +566,24 @@ class QueryApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory =
val localVariableQuery: MultiValueMap = mutableMapOf<kotlin.String, kotlin.collections.List<kotlin.String>>()
.apply {
if (queryObject != null) {
put("query_object", listOf(queryObject.toString()))
if (queryObject.id != null) {
put("id", listOf(queryObject.id.toString()))
}
if (queryObject.name != null) {
put("name", listOf(queryObject.name.toString()))
}
if (queryObject.category != null) {
put("category", listOf(queryObject.category.toString()))
}
if (queryObject.photoUrls != null) {
put("photoUrls", toMultiValue(queryObject.photoUrls.toList(), ""))
}
if (queryObject.tags != null) {
put("tags", toMultiValue(queryObject.tags.toList(), ""))
}
if (queryObject.status != null) {
put("status", listOf(queryObject.status.value))
}
}
}
val localVariableHeaders: MutableMap<String, String> = mutableMapOf()
Expand Down

0 comments on commit ebc8854

Please sign in to comment.