From 92775ceffc3ce1616930a12990d8957d4fd40c9c Mon Sep 17 00:00:00 2001 From: Ian Cubbon Date: Fri, 13 Jan 2023 09:48:27 -0700 Subject: [PATCH] [Go] [Client] Don't Explode Query Params (#14447) * If the collection type is csv, that means 'dont explode the query params'. * Simplify the logic just a tad * url.Values -> Has was added in go1.17 but there are CI tests running at 1.16 --- .../openapi-generator/src/main/resources/go/client.mustache | 6 +++++- samples/client/petstore/go/go-petstore/client.go | 6 +++++- .../extensions/x-auth-id-alias/go-experimental/client.go | 6 +++++- samples/openapi3/client/petstore/go/go-petstore/client.go | 6 +++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/go/client.mustache b/modules/openapi-generator/src/main/resources/go/client.mustache index 49fbd071ff0..e66c6317c84 100644 --- a/modules/openapi-generator/src/main/resources/go/client.mustache +++ b/modules/openapi-generator/src/main/resources/go/client.mustache @@ -225,7 +225,11 @@ func parameterAddToQuery(queryParams interface{}, keyPrefix string, obj interfac switch valuesMap := queryParams.(type) { case url.Values: - valuesMap.Add( keyPrefix, value ) + if collectionType == "csv" && valuesMap.Get(keyPrefix) != "" { + valuesMap.Set(keyPrefix, valuesMap.Get(keyPrefix) + "," + value) + } else { + valuesMap.Add(keyPrefix, value) + } break case map[string]string: valuesMap[keyPrefix] = value diff --git a/samples/client/petstore/go/go-petstore/client.go b/samples/client/petstore/go/go-petstore/client.go index 02aeed0b0f4..8ec8dc77c78 100644 --- a/samples/client/petstore/go/go-petstore/client.go +++ b/samples/client/petstore/go/go-petstore/client.go @@ -231,7 +231,11 @@ func parameterAddToQuery(queryParams interface{}, keyPrefix string, obj interfac switch valuesMap := queryParams.(type) { case url.Values: - valuesMap.Add( keyPrefix, value ) + if collectionType == "csv" && valuesMap.Get(keyPrefix) != "" { + valuesMap.Set(keyPrefix, valuesMap.Get(keyPrefix) + "," + value) + } else { + valuesMap.Add(keyPrefix, value) + } break case map[string]string: valuesMap[keyPrefix] = value diff --git a/samples/openapi3/client/extensions/x-auth-id-alias/go-experimental/client.go b/samples/openapi3/client/extensions/x-auth-id-alias/go-experimental/client.go index 17aa6861b06..9cf02fe1f70 100644 --- a/samples/openapi3/client/extensions/x-auth-id-alias/go-experimental/client.go +++ b/samples/openapi3/client/extensions/x-auth-id-alias/go-experimental/client.go @@ -215,7 +215,11 @@ func parameterAddToQuery(queryParams interface{}, keyPrefix string, obj interfac switch valuesMap := queryParams.(type) { case url.Values: - valuesMap.Add( keyPrefix, value ) + if collectionType == "csv" && valuesMap.Get(keyPrefix) != "" { + valuesMap.Set(keyPrefix, valuesMap.Get(keyPrefix) + "," + value) + } else { + valuesMap.Add(keyPrefix, value) + } break case map[string]string: valuesMap[keyPrefix] = value diff --git a/samples/openapi3/client/petstore/go/go-petstore/client.go b/samples/openapi3/client/petstore/go/go-petstore/client.go index 8db7aa62f1c..7f9f73dba8b 100644 --- a/samples/openapi3/client/petstore/go/go-petstore/client.go +++ b/samples/openapi3/client/petstore/go/go-petstore/client.go @@ -234,7 +234,11 @@ func parameterAddToQuery(queryParams interface{}, keyPrefix string, obj interfac switch valuesMap := queryParams.(type) { case url.Values: - valuesMap.Add( keyPrefix, value ) + if collectionType == "csv" && valuesMap.Get(keyPrefix) != "" { + valuesMap.Set(keyPrefix, valuesMap.Get(keyPrefix) + "," + value) + } else { + valuesMap.Add(keyPrefix, value) + } break case map[string]string: valuesMap[keyPrefix] = value