From aa88d5bbe66532f9ab5a1fa0c78fba3312919e1e Mon Sep 17 00:00:00 2001 From: Jacob Heider Date: Tue, 13 Jul 2021 03:27:44 -0400 Subject: [PATCH] Swift5/Vapor query parameter coding keys required (#9924) * Fixes camel-case query parameters (perPage => per_page) * Prep for PR --- .../src/main/resources/swift5/api.mustache | 6 +++++ .../Sources/PetstoreClient/APIs/FakeAPI.swift | 26 +++++++++++++++++++ .../Sources/PetstoreClient/APIs/PetAPI.swift | 8 ++++++ .../Sources/PetstoreClient/APIs/UserAPI.swift | 5 ++++ 4 files changed, 45 insertions(+) diff --git a/modules/openapi-generator/src/main/resources/swift5/api.mustache b/modules/openapi-generator/src/main/resources/swift5/api.mustache index 135c47069c6..80a98e94b93 100644 --- a/modules/openapi-generator/src/main/resources/swift5/api.mustache +++ b/modules/openapi-generator/src/main/resources/swift5/api.mustache @@ -251,6 +251,12 @@ extension {{projectName}} { {{#queryParams}} var {{paramName}}: {{#isEnum}}{{#isArray}}[{{enumName}}_{{operationId}}]{{/isArray}}{{^isArray}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}?{{/required}} {{/queryParams}} + + enum CodingKeys: String, CodingKey { + {{#queryParams}} + case {{paramName}}{{#baseName}} = "{{baseName}}"{{/baseName}} + {{/queryParams}} + } } try localVariableRequest.query.encode(QueryParams({{#queryParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/queryParams}})){{/hasQueryParams}} {{#hasBodyParam}} diff --git a/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/FakeAPI.swift b/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/FakeAPI.swift index 16aa16bac11..cc3be7c3df9 100644 --- a/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/FakeAPI.swift @@ -324,6 +324,10 @@ open class FakeAPI { struct QueryParams: Content { var query: String + + enum CodingKeys: String, CodingKey { + case query = "query" + } } try localVariableRequest.query.encode(QueryParams(query: query)) try localVariableRequest.content.encode(body, using: Configuration.contentConfiguration.requireEncoder(for: User.defaultContentType)) @@ -605,6 +609,13 @@ open class FakeAPI { var enumQueryString: EnumQueryString_testEnumParameters? var enumQueryInteger: EnumQueryInteger_testEnumParameters? var enumQueryDouble: EnumQueryDouble_testEnumParameters? + + enum CodingKeys: String, CodingKey { + case enumQueryStringArray = "enum_query_string_array" + case enumQueryString = "enum_query_string" + case enumQueryInteger = "enum_query_integer" + case enumQueryDouble = "enum_query_double" + } } try localVariableRequest.query.encode(QueryParams(enumQueryStringArray: enumQueryStringArray, enumQueryString: enumQueryString, enumQueryInteger: enumQueryInteger, enumQueryDouble: enumQueryDouble)) struct FormParams: Content { @@ -683,6 +694,13 @@ open class FakeAPI { var requiredInt64Group: Int64 var stringGroup: Int? var int64Group: Int64? + + enum CodingKeys: String, CodingKey { + case requiredStringGroup = "required_string_group" + case requiredInt64Group = "required_int64_group" + case stringGroup = "string_group" + case int64Group = "int64_group" + } } try localVariableRequest.query.encode(QueryParams(requiredStringGroup: requiredStringGroup, requiredInt64Group: requiredInt64Group, stringGroup: stringGroup, int64Group: int64Group)) @@ -846,6 +864,14 @@ open class FakeAPI { var http: [String] var url: [String] var context: [String] + + enum CodingKeys: String, CodingKey { + case pipe = "pipe" + case ioutil = "ioutil" + case http = "http" + case url = "url" + case context = "context" + } } try localVariableRequest.query.encode(QueryParams(pipe: pipe, ioutil: ioutil, http: http, url: url, context: context)) diff --git a/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/PetAPI.swift b/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/PetAPI.swift index fb35eba5e72..50fc2d9e295 100644 --- a/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/PetAPI.swift +++ b/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/PetAPI.swift @@ -163,6 +163,10 @@ open class PetAPI { struct QueryParams: Content { var status: [Status_findPetsByStatus] + + enum CodingKeys: String, CodingKey { + case status = "status" + } } try localVariableRequest.query.encode(QueryParams(status: status)) @@ -224,6 +228,10 @@ open class PetAPI { struct QueryParams: Content { var tags: Set + + enum CodingKeys: String, CodingKey { + case tags = "tags" + } } try localVariableRequest.query.encode(QueryParams(tags: tags)) diff --git a/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/UserAPI.swift b/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/UserAPI.swift index a0d83204e50..642b031911e 100644 --- a/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/UserAPI.swift +++ b/samples/client/petstore/swift5/vaporLibrary/Sources/PetstoreClient/APIs/UserAPI.swift @@ -278,6 +278,11 @@ open class UserAPI { struct QueryParams: Content { var username: String var password: String + + enum CodingKeys: String, CodingKey { + case username = "username" + case password = "password" + } } try localVariableRequest.query.encode(QueryParams(username: username, password: password))