Fix enum encodable (#4594)

This commit is contained in:
Bruno Coelho 2019-11-28 12:55:35 +00:00 committed by William Cheng
parent df682aba99
commit 8cc7befbf3
22 changed files with 226 additions and 166 deletions

View File

@ -35,6 +35,10 @@ extension String: JSONEncodable {
func encodeToJSON() -> Any { return self as Any } func encodeToJSON() -> Any { return self as Any }
} }
extension RawRepresentable where RawValue: JSONEncodable {
func encodeToJSON() -> Any { return self.rawValue as Any }
}
private func encodeIfPossible<T>(_ object: T) -> Any { private func encodeIfPossible<T>(_ object: T) -> Any {
if let encodableObject = object as? JSONEncodable { if let encodableObject = object as? JSONEncodable {
return encodableObject.encodeToJSON() return encodableObject.encodeToJSON()
@ -84,6 +88,12 @@ extension Date: JSONEncodable {
} }
} }
extension URL: JSONEncodable {
func encodeToJSON() -> Any {
return self
}
}
extension UUID: JSONEncodable { extension UUID: JSONEncodable {
func encodeToJSON() -> Any { func encodeToJSON() -> Any {
return self.uuidString return self.uuidString

View File

@ -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}} "{{baseName}}": {{paramName}}{{^required}}?{{/required}}.encodeToJSON()

View File

@ -186,7 +186,7 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"query": query "query": query.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
@ -284,17 +284,17 @@ open class FakeAPI {
"integer": integer?.encodeToJSON(), "integer": integer?.encodeToJSON(),
"int32": int32?.encodeToJSON(), "int32": int32?.encodeToJSON(),
"int64": int64?.encodeToJSON(), "int64": int64?.encodeToJSON(),
"number": number, "number": number.encodeToJSON(),
"float": float, "float": float?.encodeToJSON(),
"double": double, "double": double.encodeToJSON(),
"string": string, "string": string?.encodeToJSON(),
"pattern_without_delimiter": patternWithoutDelimiter, "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(),
"byte": byte, "byte": byte.encodeToJSON(),
"binary": binary, "binary": binary?.encodeToJSON(),
"date": date?.encodeToJSON(), "date": date?.encodeToJSON(),
"dateTime": dateTime?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(),
"password": password, "password": password?.encodeToJSON(),
"callback": callback "callback": callback?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -415,8 +415,8 @@ open class FakeAPI {
let path = "/fake" let path = "/fake"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"enum_form_string_array": enumFormStringArray, "enum_form_string_array": enumFormStringArray?.encodeToJSON(),
"enum_form_string": enumFormString?.rawValue "enum_form_string": enumFormString?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -424,14 +424,14 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"enum_query_string_array": enumQueryStringArray, "enum_query_string_array": enumQueryStringArray?.encodeToJSON(),
"enum_query_string": enumQueryString?.rawValue, "enum_query_string": enumQueryString?.encodeToJSON(),
"enum_query_integer": enumQueryInteger?.rawValue, "enum_query_integer": enumQueryInteger?.encodeToJSON(),
"enum_query_double": enumQueryDouble?.rawValue "enum_query_double": enumQueryDouble?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"enum_header_string_array": enumHeaderStringArray, "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(),
"enum_header_string": enumHeaderString?.rawValue "enum_header_string": enumHeaderString?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -486,8 +486,8 @@ open class FakeAPI {
"int64_group": int64Group?.encodeToJSON() "int64_group": int64Group?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"required_boolean_group": requiredBooleanGroup, "required_boolean_group": requiredBooleanGroup.encodeToJSON(),
"boolean_group": booleanGroup "boolean_group": booleanGroup?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -558,8 +558,8 @@ open class FakeAPI {
let path = "/fake/jsonFormData" let path = "/fake/jsonFormData"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"param": param, "param": param.encodeToJSON(),
"param2": param2 "param2": param2.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -82,7 +82,7 @@ open class PetAPI {
let url = URLComponents(string: URLString) let url = URLComponents(string: URLString)
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"api_key": apiKey "api_key": apiKey?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -129,7 +129,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"status": status "status": status.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
@ -166,7 +166,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"tags": tags "tags": tags.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() 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) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"name": name, "name": name?.encodeToJSON(),
"status": status "status": status?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -330,8 +330,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"file": file "file": file?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -376,8 +376,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"requiredFile": requiredFile "requiredFile": requiredFile.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -210,8 +210,8 @@ open class UserAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"username": username, "username": username.encodeToJSON(),
"password": password "password": password.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()

View File

@ -34,6 +34,10 @@ extension String: JSONEncodable {
func encodeToJSON() -> Any { return self as Any } func encodeToJSON() -> Any { return self as Any }
} }
extension RawRepresentable where RawValue: JSONEncodable {
func encodeToJSON() -> Any { return self.rawValue as Any }
}
private func encodeIfPossible<T>(_ object: T) -> Any { private func encodeIfPossible<T>(_ object: T) -> Any {
if let encodableObject = object as? JSONEncodable { if let encodableObject = object as? JSONEncodable {
return encodableObject.encodeToJSON() return encodableObject.encodeToJSON()
@ -83,6 +87,12 @@ extension Date: JSONEncodable {
} }
} }
extension URL: JSONEncodable {
func encodeToJSON() -> Any {
return self
}
}
extension UUID: JSONEncodable { extension UUID: JSONEncodable {
func encodeToJSON() -> Any { func encodeToJSON() -> Any {
return self.uuidString return self.uuidString

View File

@ -186,7 +186,7 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"query": query "query": query.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
@ -284,17 +284,17 @@ open class FakeAPI {
"integer": integer?.encodeToJSON(), "integer": integer?.encodeToJSON(),
"int32": int32?.encodeToJSON(), "int32": int32?.encodeToJSON(),
"int64": int64?.encodeToJSON(), "int64": int64?.encodeToJSON(),
"number": number, "number": number.encodeToJSON(),
"float": float, "float": float?.encodeToJSON(),
"double": double, "double": double.encodeToJSON(),
"string": string, "string": string?.encodeToJSON(),
"pattern_without_delimiter": patternWithoutDelimiter, "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(),
"byte": byte, "byte": byte.encodeToJSON(),
"binary": binary, "binary": binary?.encodeToJSON(),
"date": date?.encodeToJSON(), "date": date?.encodeToJSON(),
"dateTime": dateTime?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(),
"password": password, "password": password?.encodeToJSON(),
"callback": callback "callback": callback?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -415,8 +415,8 @@ open class FakeAPI {
let path = "/fake" let path = "/fake"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"enum_form_string_array": enumFormStringArray, "enum_form_string_array": enumFormStringArray?.encodeToJSON(),
"enum_form_string": enumFormString?.rawValue "enum_form_string": enumFormString?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -424,14 +424,14 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"enum_query_string_array": enumQueryStringArray, "enum_query_string_array": enumQueryStringArray?.encodeToJSON(),
"enum_query_string": enumQueryString?.rawValue, "enum_query_string": enumQueryString?.encodeToJSON(),
"enum_query_integer": enumQueryInteger?.rawValue, "enum_query_integer": enumQueryInteger?.encodeToJSON(),
"enum_query_double": enumQueryDouble?.rawValue "enum_query_double": enumQueryDouble?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"enum_header_string_array": enumHeaderStringArray, "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(),
"enum_header_string": enumHeaderString?.rawValue "enum_header_string": enumHeaderString?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -486,8 +486,8 @@ open class FakeAPI {
"int64_group": int64Group?.encodeToJSON() "int64_group": int64Group?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"required_boolean_group": requiredBooleanGroup, "required_boolean_group": requiredBooleanGroup.encodeToJSON(),
"boolean_group": booleanGroup "boolean_group": booleanGroup?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -558,8 +558,8 @@ open class FakeAPI {
let path = "/fake/jsonFormData" let path = "/fake/jsonFormData"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"param": param, "param": param.encodeToJSON(),
"param2": param2 "param2": param2.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -82,7 +82,7 @@ open class PetAPI {
let url = URLComponents(string: URLString) let url = URLComponents(string: URLString)
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"api_key": apiKey "api_key": apiKey?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -129,7 +129,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"status": status "status": status.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
@ -166,7 +166,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"tags": tags "tags": tags.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() 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) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"name": name, "name": name?.encodeToJSON(),
"status": status "status": status?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -330,8 +330,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"file": file "file": file?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -376,8 +376,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"requiredFile": requiredFile "requiredFile": requiredFile.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -210,8 +210,8 @@ open class UserAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"username": username, "username": username.encodeToJSON(),
"password": password "password": password.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()

View File

@ -34,6 +34,10 @@ extension String: JSONEncodable {
func encodeToJSON() -> Any { return self as Any } func encodeToJSON() -> Any { return self as Any }
} }
extension RawRepresentable where RawValue: JSONEncodable {
func encodeToJSON() -> Any { return self.rawValue as Any }
}
private func encodeIfPossible<T>(_ object: T) -> Any { private func encodeIfPossible<T>(_ object: T) -> Any {
if let encodableObject = object as? JSONEncodable { if let encodableObject = object as? JSONEncodable {
return encodableObject.encodeToJSON() return encodableObject.encodeToJSON()
@ -83,6 +87,12 @@ extension Date: JSONEncodable {
} }
} }
extension URL: JSONEncodable {
func encodeToJSON() -> Any {
return self
}
}
extension UUID: JSONEncodable { extension UUID: JSONEncodable {
func encodeToJSON() -> Any { func encodeToJSON() -> Any {
return self.uuidString return self.uuidString

View File

@ -223,7 +223,7 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"query": query "query": query.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
@ -331,17 +331,17 @@ open class FakeAPI {
"integer": integer?.encodeToJSON(), "integer": integer?.encodeToJSON(),
"int32": int32?.encodeToJSON(), "int32": int32?.encodeToJSON(),
"int64": int64?.encodeToJSON(), "int64": int64?.encodeToJSON(),
"number": number, "number": number.encodeToJSON(),
"float": float, "float": float?.encodeToJSON(),
"double": double, "double": double.encodeToJSON(),
"string": string, "string": string?.encodeToJSON(),
"pattern_without_delimiter": patternWithoutDelimiter, "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(),
"byte": byte, "byte": byte.encodeToJSON(),
"binary": binary, "binary": binary?.encodeToJSON(),
"date": date?.encodeToJSON(), "date": date?.encodeToJSON(),
"dateTime": dateTime?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(),
"password": password, "password": password?.encodeToJSON(),
"callback": callback "callback": callback?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -464,8 +464,8 @@ open class FakeAPI {
let path = "/fake" let path = "/fake"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"enum_form_string_array": enumFormStringArray, "enum_form_string_array": enumFormStringArray?.encodeToJSON(),
"enum_form_string": enumFormString?.rawValue "enum_form_string": enumFormString?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -473,14 +473,14 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"enum_query_string_array": enumQueryStringArray, "enum_query_string_array": enumQueryStringArray?.encodeToJSON(),
"enum_query_string": enumQueryString?.rawValue, "enum_query_string": enumQueryString?.encodeToJSON(),
"enum_query_integer": enumQueryInteger?.rawValue, "enum_query_integer": enumQueryInteger?.encodeToJSON(),
"enum_query_double": enumQueryDouble?.rawValue "enum_query_double": enumQueryDouble?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"enum_header_string_array": enumHeaderStringArray, "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(),
"enum_header_string": enumHeaderString?.rawValue "enum_header_string": enumHeaderString?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -537,8 +537,8 @@ open class FakeAPI {
"int64_group": int64Group?.encodeToJSON() "int64_group": int64Group?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"required_boolean_group": requiredBooleanGroup, "required_boolean_group": requiredBooleanGroup.encodeToJSON(),
"boolean_group": booleanGroup "boolean_group": booleanGroup?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -613,8 +613,8 @@ open class FakeAPI {
let path = "/fake/jsonFormData" let path = "/fake/jsonFormData"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"param": param, "param": param.encodeToJSON(),
"param2": param2 "param2": param2.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -87,7 +87,7 @@ open class PetAPI {
let url = URLComponents(string: URLString) let url = URLComponents(string: URLString)
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"api_key": apiKey "api_key": apiKey?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -142,7 +142,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"status": status "status": status.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
@ -187,7 +187,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"tags": tags "tags": tags.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() 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) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"name": name, "name": name?.encodeToJSON(),
"status": status "status": status?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -371,8 +371,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"file": file "file": file?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -425,8 +425,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"requiredFile": requiredFile "requiredFile": requiredFile.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -235,8 +235,8 @@ open class UserAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"username": username, "username": username.encodeToJSON(),
"password": password "password": password.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()

View File

@ -35,6 +35,10 @@ extension String: JSONEncodable {
func encodeToJSON() -> Any { return self as Any } func encodeToJSON() -> Any { return self as Any }
} }
extension RawRepresentable where RawValue: JSONEncodable {
func encodeToJSON() -> Any { return self.rawValue as Any }
}
private func encodeIfPossible<T>(_ object: T) -> Any { private func encodeIfPossible<T>(_ object: T) -> Any {
if let encodableObject = object as? JSONEncodable { if let encodableObject = object as? JSONEncodable {
return encodableObject.encodeToJSON() return encodableObject.encodeToJSON()
@ -84,6 +88,12 @@ extension Date: JSONEncodable {
} }
} }
extension URL: JSONEncodable {
func encodeToJSON() -> Any {
return self
}
}
extension UUID: JSONEncodable { extension UUID: JSONEncodable {
func encodeToJSON() -> Any { func encodeToJSON() -> Any {
return self.uuidString return self.uuidString

View File

@ -235,7 +235,7 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"query": query "query": query.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
@ -347,17 +347,17 @@ open class FakeAPI {
"integer": integer?.encodeToJSON(), "integer": integer?.encodeToJSON(),
"int32": int32?.encodeToJSON(), "int32": int32?.encodeToJSON(),
"int64": int64?.encodeToJSON(), "int64": int64?.encodeToJSON(),
"number": number, "number": number.encodeToJSON(),
"float": float, "float": float?.encodeToJSON(),
"double": double, "double": double.encodeToJSON(),
"string": string, "string": string?.encodeToJSON(),
"pattern_without_delimiter": patternWithoutDelimiter, "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(),
"byte": byte, "byte": byte.encodeToJSON(),
"binary": binary, "binary": binary?.encodeToJSON(),
"date": date?.encodeToJSON(), "date": date?.encodeToJSON(),
"dateTime": dateTime?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(),
"password": password, "password": password?.encodeToJSON(),
"callback": callback "callback": callback?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -482,8 +482,8 @@ open class FakeAPI {
let path = "/fake" let path = "/fake"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"enum_form_string_array": enumFormStringArray, "enum_form_string_array": enumFormStringArray?.encodeToJSON(),
"enum_form_string": enumFormString?.rawValue "enum_form_string": enumFormString?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -491,14 +491,14 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"enum_query_string_array": enumQueryStringArray, "enum_query_string_array": enumQueryStringArray?.encodeToJSON(),
"enum_query_string": enumQueryString?.rawValue, "enum_query_string": enumQueryString?.encodeToJSON(),
"enum_query_integer": enumQueryInteger?.rawValue, "enum_query_integer": enumQueryInteger?.encodeToJSON(),
"enum_query_double": enumQueryDouble?.rawValue "enum_query_double": enumQueryDouble?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"enum_header_string_array": enumHeaderStringArray, "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(),
"enum_header_string": enumHeaderString?.rawValue "enum_header_string": enumHeaderString?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -557,8 +557,8 @@ open class FakeAPI {
"int64_group": int64Group?.encodeToJSON() "int64_group": int64Group?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"required_boolean_group": requiredBooleanGroup, "required_boolean_group": requiredBooleanGroup.encodeToJSON(),
"boolean_group": booleanGroup "boolean_group": booleanGroup?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -637,8 +637,8 @@ open class FakeAPI {
let path = "/fake/jsonFormData" let path = "/fake/jsonFormData"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"param": param, "param": param.encodeToJSON(),
"param2": param2 "param2": param2.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -91,7 +91,7 @@ open class PetAPI {
let url = URLComponents(string: URLString) let url = URLComponents(string: URLString)
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"api_key": apiKey "api_key": apiKey?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -148,7 +148,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"status": status "status": status.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
@ -195,7 +195,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"tags": tags "tags": tags.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() 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) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"name": name, "name": name?.encodeToJSON(),
"status": status "status": status?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -387,8 +387,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"file": file "file": file?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -443,8 +443,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"requiredFile": requiredFile "requiredFile": requiredFile.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -247,8 +247,8 @@ open class UserAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"username": username, "username": username.encodeToJSON(),
"password": password "password": password.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()

View File

@ -34,6 +34,10 @@ extension String: JSONEncodable {
func encodeToJSON() -> Any { return self as Any } func encodeToJSON() -> Any { return self as Any }
} }
extension RawRepresentable where RawValue: JSONEncodable {
func encodeToJSON() -> Any { return self.rawValue as Any }
}
private func encodeIfPossible<T>(_ object: T) -> Any { private func encodeIfPossible<T>(_ object: T) -> Any {
if let encodableObject = object as? JSONEncodable { if let encodableObject = object as? JSONEncodable {
return encodableObject.encodeToJSON() return encodableObject.encodeToJSON()
@ -83,6 +87,12 @@ extension Date: JSONEncodable {
} }
} }
extension URL: JSONEncodable {
func encodeToJSON() -> Any {
return self
}
}
extension UUID: JSONEncodable { extension UUID: JSONEncodable {
func encodeToJSON() -> Any { func encodeToJSON() -> Any {
return self.uuidString return self.uuidString

View File

@ -186,7 +186,7 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"query": query "query": query.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
@ -284,17 +284,17 @@ open class FakeAPI {
"integer": integer?.encodeToJSON(), "integer": integer?.encodeToJSON(),
"int32": int32?.encodeToJSON(), "int32": int32?.encodeToJSON(),
"int64": int64?.encodeToJSON(), "int64": int64?.encodeToJSON(),
"number": number, "number": number.encodeToJSON(),
"float": float, "float": float?.encodeToJSON(),
"double": double, "double": double.encodeToJSON(),
"string": string, "string": string?.encodeToJSON(),
"pattern_without_delimiter": patternWithoutDelimiter, "pattern_without_delimiter": patternWithoutDelimiter.encodeToJSON(),
"byte": byte, "byte": byte.encodeToJSON(),
"binary": binary, "binary": binary?.encodeToJSON(),
"date": date?.encodeToJSON(), "date": date?.encodeToJSON(),
"dateTime": dateTime?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(),
"password": password, "password": password?.encodeToJSON(),
"callback": callback "callback": callback?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -415,8 +415,8 @@ open class FakeAPI {
let path = "/fake" let path = "/fake"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"enum_form_string_array": enumFormStringArray, "enum_form_string_array": enumFormStringArray?.encodeToJSON(),
"enum_form_string": enumFormString?.rawValue "enum_form_string": enumFormString?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -424,14 +424,14 @@ open class FakeAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"enum_query_string_array": enumQueryStringArray, "enum_query_string_array": enumQueryStringArray?.encodeToJSON(),
"enum_query_string": enumQueryString?.rawValue, "enum_query_string": enumQueryString?.encodeToJSON(),
"enum_query_integer": enumQueryInteger?.rawValue, "enum_query_integer": enumQueryInteger?.encodeToJSON(),
"enum_query_double": enumQueryDouble?.rawValue "enum_query_double": enumQueryDouble?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"enum_header_string_array": enumHeaderStringArray, "enum_header_string_array": enumHeaderStringArray?.encodeToJSON(),
"enum_header_string": enumHeaderString?.rawValue "enum_header_string": enumHeaderString?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -486,8 +486,8 @@ open class FakeAPI {
"int64_group": int64Group?.encodeToJSON() "int64_group": int64Group?.encodeToJSON()
]) ])
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"required_boolean_group": requiredBooleanGroup, "required_boolean_group": requiredBooleanGroup.encodeToJSON(),
"boolean_group": booleanGroup "boolean_group": booleanGroup?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -558,8 +558,8 @@ open class FakeAPI {
let path = "/fake/jsonFormData" let path = "/fake/jsonFormData"
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"param": param, "param": param.encodeToJSON(),
"param2": param2 "param2": param2.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -82,7 +82,7 @@ open class PetAPI {
let url = URLComponents(string: URLString) let url = URLComponents(string: URLString)
let nillableHeaders: [String: Any?] = [ let nillableHeaders: [String: Any?] = [
"api_key": apiKey "api_key": apiKey?.encodeToJSON()
] ]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
@ -129,7 +129,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"status": status "status": status.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
@ -166,7 +166,7 @@ open class PetAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"tags": tags "tags": tags.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() 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) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"name": name, "name": name?.encodeToJSON(),
"status": status "status": status?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -330,8 +330,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"file": file "file": file?.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)
@ -376,8 +376,8 @@ open class PetAPI {
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [ let formParams: [String: Any?] = [
"additionalMetadata": additionalMetadata, "additionalMetadata": additionalMetadata?.encodeToJSON(),
"requiredFile": requiredFile "requiredFile": requiredFile.encodeToJSON()
] ]
let nonNullParameters = APIHelper.rejectNil(formParams) let nonNullParameters = APIHelper.rejectNil(formParams)

View File

@ -210,8 +210,8 @@ open class UserAPI {
var url = URLComponents(string: URLString) var url = URLComponents(string: URLString)
url?.queryItems = APIHelper.mapValuesToQueryItems([ url?.queryItems = APIHelper.mapValuesToQueryItems([
"username": username, "username": username.encodeToJSON(),
"password": password "password": password.encodeToJSON()
]) ])
let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()

View File

@ -34,6 +34,10 @@ extension String: JSONEncodable {
func encodeToJSON() -> Any { return self as Any } func encodeToJSON() -> Any { return self as Any }
} }
extension RawRepresentable where RawValue: JSONEncodable {
func encodeToJSON() -> Any { return self.rawValue as Any }
}
private func encodeIfPossible<T>(_ object: T) -> Any { private func encodeIfPossible<T>(_ object: T) -> Any {
if let encodableObject = object as? JSONEncodable { if let encodableObject = object as? JSONEncodable {
return encodableObject.encodeToJSON() return encodableObject.encodeToJSON()
@ -83,6 +87,12 @@ extension Date: JSONEncodable {
} }
} }
extension URL: JSONEncodable {
func encodeToJSON() -> Any {
return self
}
}
extension UUID: JSONEncodable { extension UUID: JSONEncodable {
func encodeToJSON() -> Any { func encodeToJSON() -> Any {
return self.uuidString return self.uuidString