From 8cc7befbf370fb61b2f9c97112bc21f4b96e1a3b Mon Sep 17 00:00:00 2001 From: Bruno Coelho <4brunu@users.noreply.github.com> Date: Thu, 28 Nov 2019 12:55:35 +0000 Subject: [PATCH] Fix enum encodable (#4594) --- .../main/resources/swift4/Extensions.mustache | 10 +++++ .../src/main/resources/swift4/_param.mustache | 2 +- .../Classes/OpenAPIs/APIs/FakeAPI.swift | 44 +++++++++---------- .../Classes/OpenAPIs/APIs/PetAPI.swift | 18 ++++---- .../Classes/OpenAPIs/APIs/UserAPI.swift | 4 +- .../Classes/OpenAPIs/Extensions.swift | 10 +++++ .../Classes/OpenAPIs/APIs/FakeAPI.swift | 44 +++++++++---------- .../Classes/OpenAPIs/APIs/PetAPI.swift | 18 ++++---- .../Classes/OpenAPIs/APIs/UserAPI.swift | 4 +- .../Classes/OpenAPIs/Extensions.swift | 10 +++++ .../Classes/OpenAPIs/APIs/FakeAPI.swift | 44 +++++++++---------- .../Classes/OpenAPIs/APIs/PetAPI.swift | 18 ++++---- .../Classes/OpenAPIs/APIs/UserAPI.swift | 4 +- .../Classes/OpenAPIs/Extensions.swift | 10 +++++ .../Classes/OpenAPIs/APIs/FakeAPI.swift | 44 +++++++++---------- .../Classes/OpenAPIs/APIs/PetAPI.swift | 18 ++++---- .../Classes/OpenAPIs/APIs/UserAPI.swift | 4 +- .../Classes/OpenAPIs/Extensions.swift | 10 +++++ .../Classes/OpenAPIs/APIs/FakeAPI.swift | 44 +++++++++---------- .../Classes/OpenAPIs/APIs/PetAPI.swift | 18 ++++---- .../Classes/OpenAPIs/APIs/UserAPI.swift | 4 +- .../Classes/OpenAPIs/Extensions.swift | 10 +++++ 22 files changed, 226 insertions(+), 166 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/swift4/Extensions.mustache b/modules/openapi-generator/src/main/resources/swift4/Extensions.mustache index c694cc4cfcf0..0fb2e44a4a36 100644 --- a/modules/openapi-generator/src/main/resources/swift4/Extensions.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/Extensions.mustache @@ -35,6 +35,10 @@ extension String: JSONEncodable { func encodeToJSON() -> Any { return self as Any } } +extension RawRepresentable where RawValue: JSONEncodable { + func encodeToJSON() -> Any { return self.rawValue as Any } +} + private func encodeIfPossible(_ object: T) -> Any { if let encodableObject = object as? JSONEncodable { return encodableObject.encodeToJSON() @@ -84,6 +88,12 @@ extension Date: JSONEncodable { } } +extension URL: JSONEncodable { + func encodeToJSON() -> Any { + return self + } +} + extension UUID: JSONEncodable { func encodeToJSON() -> Any { return self.uuidString diff --git a/modules/openapi-generator/src/main/resources/swift4/_param.mustache b/modules/openapi-generator/src/main/resources/swift4/_param.mustache index 5caacbc6005c..770458343aa9 100644 --- a/modules/openapi-generator/src/main/resources/swift4/_param.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/_param.mustache @@ -1 +1 @@ -"{{baseName}}": {{paramName}}{{^isEnum}}{{#isInteger}}{{^required}}?{{/required}}.encodeToJSON(){{/isInteger}}{{#isLong}}{{^required}}?{{/required}}.encodeToJSON(){{/isLong}}{{/isEnum}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}.rawValue{{/isContainer}}{{/isEnum}}{{#isDate}}{{^required}}?{{/required}}.encodeToJSON(){{/isDate}}{{#isDateTime}}{{^required}}?{{/required}}.encodeToJSON(){{/isDateTime}} \ No newline at end of file +"{{baseName}}": {{paramName}}{{^required}}?{{/required}}.encodeToJSON() \ No newline at end of file diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index a313a2f77795..b0b394aa06e0 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -186,7 +186,7 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "query": query + "query": query.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -284,17 +284,17 @@ open class FakeAPI { "integer": integer?.encodeToJSON(), "int32": int32?.encodeToJSON(), "int64": int64?.encodeToJSON(), - "number": number, - "float": float, - "double": double, - "string": string, - "pattern_without_delimiter": patternWithoutDelimiter, - "byte": byte, - "binary": binary, + "number": number.encodeToJSON(), + "float": float?.encodeToJSON(), + "double": double.encodeToJSON(), + "string": string?.encodeToJSON(), + "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(), + "byte": byte.encodeToJSON(), + "binary": binary?.encodeToJSON(), "date": date?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(), - "password": password, - "callback": callback + "password": password?.encodeToJSON(), + "callback": callback?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -415,8 +415,8 @@ open class FakeAPI { let path = "/fake" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "enum_form_string_array": enumFormStringArray, - "enum_form_string": enumFormString?.rawValue + "enum_form_string_array": enumFormStringArray?.encodeToJSON(), + "enum_form_string": enumFormString?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -424,14 +424,14 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "enum_query_string_array": enumQueryStringArray, - "enum_query_string": enumQueryString?.rawValue, - "enum_query_integer": enumQueryInteger?.rawValue, - "enum_query_double": enumQueryDouble?.rawValue + "enum_query_string_array": enumQueryStringArray?.encodeToJSON(), + "enum_query_string": enumQueryString?.encodeToJSON(), + "enum_query_integer": enumQueryInteger?.encodeToJSON(), + "enum_query_double": enumQueryDouble?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "enum_header_string_array": enumHeaderStringArray, - "enum_header_string": enumHeaderString?.rawValue + "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(), + "enum_header_string": enumHeaderString?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -486,8 +486,8 @@ open class FakeAPI { "int64_group": int64Group?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "required_boolean_group": requiredBooleanGroup, - "boolean_group": booleanGroup + "required_boolean_group": requiredBooleanGroup.encodeToJSON(), + "boolean_group": booleanGroup?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -558,8 +558,8 @@ open class FakeAPI { let path = "/fake/jsonFormData" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "param": param, - "param2": param2 + "param": param.encodeToJSON(), + "param2": param2.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index f10127cdb8cf..fe75962a72cf 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -82,7 +82,7 @@ open class PetAPI { let url = URLComponents(string: URLString) let nillableHeaders: [String: Any?] = [ - "api_key": apiKey + "api_key": apiKey?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -129,7 +129,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "status": status + "status": status.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -166,7 +166,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "tags": tags + "tags": tags.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -284,8 +284,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "name": name, - "status": status + "name": name?.encodeToJSON(), + "status": status?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -330,8 +330,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "file": file + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "file": file?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -376,8 +376,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "requiredFile": requiredFile + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "requiredFile": requiredFile.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 3d2fdaee92f0..ef4f971a91e2 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -210,8 +210,8 @@ open class UserAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "username": username, - "password": password + "username": username.encodeToJSON(), + "password": password.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift index b223c143e0f0..f8faed255bf0 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -34,6 +34,10 @@ extension String: JSONEncodable { func encodeToJSON() -> Any { return self as Any } } +extension RawRepresentable where RawValue: JSONEncodable { + func encodeToJSON() -> Any { return self.rawValue as Any } +} + private func encodeIfPossible(_ object: T) -> Any { if let encodableObject = object as? JSONEncodable { return encodableObject.encodeToJSON() @@ -83,6 +87,12 @@ extension Date: JSONEncodable { } } +extension URL: JSONEncodable { + func encodeToJSON() -> Any { + return self + } +} + extension UUID: JSONEncodable { func encodeToJSON() -> Any { return self.uuidString diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index a313a2f77795..b0b394aa06e0 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -186,7 +186,7 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "query": query + "query": query.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -284,17 +284,17 @@ open class FakeAPI { "integer": integer?.encodeToJSON(), "int32": int32?.encodeToJSON(), "int64": int64?.encodeToJSON(), - "number": number, - "float": float, - "double": double, - "string": string, - "pattern_without_delimiter": patternWithoutDelimiter, - "byte": byte, - "binary": binary, + "number": number.encodeToJSON(), + "float": float?.encodeToJSON(), + "double": double.encodeToJSON(), + "string": string?.encodeToJSON(), + "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(), + "byte": byte.encodeToJSON(), + "binary": binary?.encodeToJSON(), "date": date?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(), - "password": password, - "callback": callback + "password": password?.encodeToJSON(), + "callback": callback?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -415,8 +415,8 @@ open class FakeAPI { let path = "/fake" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "enum_form_string_array": enumFormStringArray, - "enum_form_string": enumFormString?.rawValue + "enum_form_string_array": enumFormStringArray?.encodeToJSON(), + "enum_form_string": enumFormString?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -424,14 +424,14 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "enum_query_string_array": enumQueryStringArray, - "enum_query_string": enumQueryString?.rawValue, - "enum_query_integer": enumQueryInteger?.rawValue, - "enum_query_double": enumQueryDouble?.rawValue + "enum_query_string_array": enumQueryStringArray?.encodeToJSON(), + "enum_query_string": enumQueryString?.encodeToJSON(), + "enum_query_integer": enumQueryInteger?.encodeToJSON(), + "enum_query_double": enumQueryDouble?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "enum_header_string_array": enumHeaderStringArray, - "enum_header_string": enumHeaderString?.rawValue + "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(), + "enum_header_string": enumHeaderString?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -486,8 +486,8 @@ open class FakeAPI { "int64_group": int64Group?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "required_boolean_group": requiredBooleanGroup, - "boolean_group": booleanGroup + "required_boolean_group": requiredBooleanGroup.encodeToJSON(), + "boolean_group": booleanGroup?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -558,8 +558,8 @@ open class FakeAPI { let path = "/fake/jsonFormData" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "param": param, - "param2": param2 + "param": param.encodeToJSON(), + "param2": param2.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index f10127cdb8cf..fe75962a72cf 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -82,7 +82,7 @@ open class PetAPI { let url = URLComponents(string: URLString) let nillableHeaders: [String: Any?] = [ - "api_key": apiKey + "api_key": apiKey?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -129,7 +129,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "status": status + "status": status.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -166,7 +166,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "tags": tags + "tags": tags.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -284,8 +284,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "name": name, - "status": status + "name": name?.encodeToJSON(), + "status": status?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -330,8 +330,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "file": file + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "file": file?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -376,8 +376,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "requiredFile": requiredFile + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "requiredFile": requiredFile.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 3d2fdaee92f0..ef4f971a91e2 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -210,8 +210,8 @@ open class UserAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "username": username, - "password": password + "username": username.encodeToJSON(), + "password": password.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Extensions.swift index b223c143e0f0..f8faed255bf0 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -34,6 +34,10 @@ extension String: JSONEncodable { func encodeToJSON() -> Any { return self as Any } } +extension RawRepresentable where RawValue: JSONEncodable { + func encodeToJSON() -> Any { return self.rawValue as Any } +} + private func encodeIfPossible(_ object: T) -> Any { if let encodableObject = object as? JSONEncodable { return encodableObject.encodeToJSON() @@ -83,6 +87,12 @@ extension Date: JSONEncodable { } } +extension URL: JSONEncodable { + func encodeToJSON() -> Any { + return self + } +} + extension UUID: JSONEncodable { func encodeToJSON() -> Any { return self.uuidString diff --git a/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 8200c6f30416..39c419674ba1 100644 --- a/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -223,7 +223,7 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "query": query + "query": query.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -331,17 +331,17 @@ open class FakeAPI { "integer": integer?.encodeToJSON(), "int32": int32?.encodeToJSON(), "int64": int64?.encodeToJSON(), - "number": number, - "float": float, - "double": double, - "string": string, - "pattern_without_delimiter": patternWithoutDelimiter, - "byte": byte, - "binary": binary, + "number": number.encodeToJSON(), + "float": float?.encodeToJSON(), + "double": double.encodeToJSON(), + "string": string?.encodeToJSON(), + "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(), + "byte": byte.encodeToJSON(), + "binary": binary?.encodeToJSON(), "date": date?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(), - "password": password, - "callback": callback + "password": password?.encodeToJSON(), + "callback": callback?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -464,8 +464,8 @@ open class FakeAPI { let path = "/fake" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "enum_form_string_array": enumFormStringArray, - "enum_form_string": enumFormString?.rawValue + "enum_form_string_array": enumFormStringArray?.encodeToJSON(), + "enum_form_string": enumFormString?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -473,14 +473,14 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "enum_query_string_array": enumQueryStringArray, - "enum_query_string": enumQueryString?.rawValue, - "enum_query_integer": enumQueryInteger?.rawValue, - "enum_query_double": enumQueryDouble?.rawValue + "enum_query_string_array": enumQueryStringArray?.encodeToJSON(), + "enum_query_string": enumQueryString?.encodeToJSON(), + "enum_query_integer": enumQueryInteger?.encodeToJSON(), + "enum_query_double": enumQueryDouble?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "enum_header_string_array": enumHeaderStringArray, - "enum_header_string": enumHeaderString?.rawValue + "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(), + "enum_header_string": enumHeaderString?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -537,8 +537,8 @@ open class FakeAPI { "int64_group": int64Group?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "required_boolean_group": requiredBooleanGroup, - "boolean_group": booleanGroup + "required_boolean_group": requiredBooleanGroup.encodeToJSON(), + "boolean_group": booleanGroup?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -613,8 +613,8 @@ open class FakeAPI { let path = "/fake/jsonFormData" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "param": param, - "param2": param2 + "param": param.encodeToJSON(), + "param2": param2.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index 5dec2bac9dd1..8d31c177eb97 100644 --- a/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -87,7 +87,7 @@ open class PetAPI { let url = URLComponents(string: URLString) let nillableHeaders: [String: Any?] = [ - "api_key": apiKey + "api_key": apiKey?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -142,7 +142,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "status": status + "status": status.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -187,7 +187,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "tags": tags + "tags": tags.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -317,8 +317,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "name": name, - "status": status + "name": name?.encodeToJSON(), + "status": status?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -371,8 +371,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "file": file + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "file": file?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -425,8 +425,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "requiredFile": requiredFile + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "requiredFile": requiredFile.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 48e69b873dd4..83f4674553cb 100644 --- a/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -235,8 +235,8 @@ open class UserAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "username": username, - "password": password + "username": username.encodeToJSON(), + "password": password.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() diff --git a/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift index 811edd70f416..95ad6eec74ee 100644 --- a/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -35,6 +35,10 @@ extension String: JSONEncodable { func encodeToJSON() -> Any { return self as Any } } +extension RawRepresentable where RawValue: JSONEncodable { + func encodeToJSON() -> Any { return self.rawValue as Any } +} + private func encodeIfPossible(_ object: T) -> Any { if let encodableObject = object as? JSONEncodable { return encodableObject.encodeToJSON() @@ -84,6 +88,12 @@ extension Date: JSONEncodable { } } +extension URL: JSONEncodable { + func encodeToJSON() -> Any { + return self + } +} + extension UUID: JSONEncodable { func encodeToJSON() -> Any { return self.uuidString diff --git a/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index f7c5a4e76297..edbc9b6fffc6 100644 --- a/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -235,7 +235,7 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "query": query + "query": query.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -347,17 +347,17 @@ open class FakeAPI { "integer": integer?.encodeToJSON(), "int32": int32?.encodeToJSON(), "int64": int64?.encodeToJSON(), - "number": number, - "float": float, - "double": double, - "string": string, - "pattern_without_delimiter": patternWithoutDelimiter, - "byte": byte, - "binary": binary, + "number": number.encodeToJSON(), + "float": float?.encodeToJSON(), + "double": double.encodeToJSON(), + "string": string?.encodeToJSON(), + "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(), + "byte": byte.encodeToJSON(), + "binary": binary?.encodeToJSON(), "date": date?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(), - "password": password, - "callback": callback + "password": password?.encodeToJSON(), + "callback": callback?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -482,8 +482,8 @@ open class FakeAPI { let path = "/fake" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "enum_form_string_array": enumFormStringArray, - "enum_form_string": enumFormString?.rawValue + "enum_form_string_array": enumFormStringArray?.encodeToJSON(), + "enum_form_string": enumFormString?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -491,14 +491,14 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "enum_query_string_array": enumQueryStringArray, - "enum_query_string": enumQueryString?.rawValue, - "enum_query_integer": enumQueryInteger?.rawValue, - "enum_query_double": enumQueryDouble?.rawValue + "enum_query_string_array": enumQueryStringArray?.encodeToJSON(), + "enum_query_string": enumQueryString?.encodeToJSON(), + "enum_query_integer": enumQueryInteger?.encodeToJSON(), + "enum_query_double": enumQueryDouble?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "enum_header_string_array": enumHeaderStringArray, - "enum_header_string": enumHeaderString?.rawValue + "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(), + "enum_header_string": enumHeaderString?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -557,8 +557,8 @@ open class FakeAPI { "int64_group": int64Group?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "required_boolean_group": requiredBooleanGroup, - "boolean_group": booleanGroup + "required_boolean_group": requiredBooleanGroup.encodeToJSON(), + "boolean_group": booleanGroup?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -637,8 +637,8 @@ open class FakeAPI { let path = "/fake/jsonFormData" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "param": param, - "param2": param2 + "param": param.encodeToJSON(), + "param2": param2.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index aca2de27a13f..6b4797fc19a1 100644 --- a/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -91,7 +91,7 @@ open class PetAPI { let url = URLComponents(string: URLString) let nillableHeaders: [String: Any?] = [ - "api_key": apiKey + "api_key": apiKey?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -148,7 +148,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "status": status + "status": status.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -195,7 +195,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "tags": tags + "tags": tags.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -331,8 +331,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "name": name, - "status": status + "name": name?.encodeToJSON(), + "status": status?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -387,8 +387,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "file": file + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "file": file?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -443,8 +443,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "requiredFile": requiredFile + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "requiredFile": requiredFile.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 08c8f8242401..ec28b4121d09 100644 --- a/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -247,8 +247,8 @@ open class UserAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "username": username, - "password": password + "username": username.encodeToJSON(), + "password": password.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() diff --git a/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift index b223c143e0f0..f8faed255bf0 100644 --- a/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -34,6 +34,10 @@ extension String: JSONEncodable { func encodeToJSON() -> Any { return self as Any } } +extension RawRepresentable where RawValue: JSONEncodable { + func encodeToJSON() -> Any { return self.rawValue as Any } +} + private func encodeIfPossible(_ object: T) -> Any { if let encodableObject = object as? JSONEncodable { return encodableObject.encodeToJSON() @@ -83,6 +87,12 @@ extension Date: JSONEncodable { } } +extension URL: JSONEncodable { + func encodeToJSON() -> Any { + return self + } +} + extension UUID: JSONEncodable { func encodeToJSON() -> Any { return self.uuidString diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index a313a2f77795..b0b394aa06e0 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -186,7 +186,7 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "query": query + "query": query.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -284,17 +284,17 @@ open class FakeAPI { "integer": integer?.encodeToJSON(), "int32": int32?.encodeToJSON(), "int64": int64?.encodeToJSON(), - "number": number, - "float": float, - "double": double, - "string": string, - "pattern_without_delimiter": patternWithoutDelimiter, - "byte": byte, - "binary": binary, + "number": number.encodeToJSON(), + "float": float?.encodeToJSON(), + "double": double.encodeToJSON(), + "string": string?.encodeToJSON(), + "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(), + "byte": byte.encodeToJSON(), + "binary": binary?.encodeToJSON(), "date": date?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(), - "password": password, - "callback": callback + "password": password?.encodeToJSON(), + "callback": callback?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -415,8 +415,8 @@ open class FakeAPI { let path = "/fake" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "enum_form_string_array": enumFormStringArray, - "enum_form_string": enumFormString?.rawValue + "enum_form_string_array": enumFormStringArray?.encodeToJSON(), + "enum_form_string": enumFormString?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -424,14 +424,14 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "enum_query_string_array": enumQueryStringArray, - "enum_query_string": enumQueryString?.rawValue, - "enum_query_integer": enumQueryInteger?.rawValue, - "enum_query_double": enumQueryDouble?.rawValue + "enum_query_string_array": enumQueryStringArray?.encodeToJSON(), + "enum_query_string": enumQueryString?.encodeToJSON(), + "enum_query_integer": enumQueryInteger?.encodeToJSON(), + "enum_query_double": enumQueryDouble?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "enum_header_string_array": enumHeaderStringArray, - "enum_header_string": enumHeaderString?.rawValue + "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(), + "enum_header_string": enumHeaderString?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -486,8 +486,8 @@ open class FakeAPI { "int64_group": int64Group?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ - "required_boolean_group": requiredBooleanGroup, - "boolean_group": booleanGroup + "required_boolean_group": requiredBooleanGroup.encodeToJSON(), + "boolean_group": booleanGroup?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -558,8 +558,8 @@ open class FakeAPI { let path = "/fake/jsonFormData" let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "param": param, - "param2": param2 + "param": param.encodeToJSON(), + "param2": param2.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index f10127cdb8cf..fe75962a72cf 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -82,7 +82,7 @@ open class PetAPI { let url = URLComponents(string: URLString) let nillableHeaders: [String: Any?] = [ - "api_key": apiKey + "api_key": apiKey?.encodeToJSON() ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -129,7 +129,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "status": status + "status": status.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -166,7 +166,7 @@ open class PetAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "tags": tags + "tags": tags.encodeToJSON() ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -284,8 +284,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "name": name, - "status": status + "name": name?.encodeToJSON(), + "status": status?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -330,8 +330,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "file": file + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "file": file?.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) @@ -376,8 +376,8 @@ open class PetAPI { path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path let formParams: [String: Any?] = [ - "additionalMetadata": additionalMetadata, - "requiredFile": requiredFile + "additionalMetadata": additionalMetadata?.encodeToJSON(), + "requiredFile": requiredFile.encodeToJSON() ] let nonNullParameters = APIHelper.rejectNil(formParams) diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 3d2fdaee92f0..ef4f971a91e2 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -210,8 +210,8 @@ open class UserAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "username": username, - "password": password + "username": username.encodeToJSON(), + "password": password.encodeToJSON() ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Extensions.swift index b223c143e0f0..f8faed255bf0 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -34,6 +34,10 @@ extension String: JSONEncodable { func encodeToJSON() -> Any { return self as Any } } +extension RawRepresentable where RawValue: JSONEncodable { + func encodeToJSON() -> Any { return self.rawValue as Any } +} + private func encodeIfPossible(_ object: T) -> Any { if let encodableObject = object as? JSONEncodable { return encodableObject.encodeToJSON() @@ -83,6 +87,12 @@ extension Date: JSONEncodable { } } +extension URL: JSONEncodable { + func encodeToJSON() -> Any { + return self + } +} + extension UUID: JSONEncodable { func encodeToJSON() -> Any { return self.uuidString