[swift3] allow POST with both body and query parameters (#4490)

* [swift3] allow POST with both body and query parameters

* Correctly support non-string and optional query parameters.
This commit is contained in:
Tomek Cejner 2017-01-07 15:40:07 +01:00 committed by wing328
parent 409e1a504c
commit 1e8c7180c5
13 changed files with 403 additions and 198 deletions

View File

@ -16,6 +16,15 @@ extension {{projectName}}API {
{{#description}}
/** {{description}} */{{/description}}
open class {{classname}}: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
{{#operation}}
{{#allParams}}
{{#isEnum}}
@ -108,7 +117,17 @@ open class {{classname}}: APIBase {
path = path.replacingOccurrences(of: "{{=<% %>=}}{<%paramName%>}<%={{ }}=%>", with: "\({{paramName}}{{#isEnum}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}.rawValue{{/isContainer}}{{/isEnum}})", options: .literal, range: nil){{/pathParams}}
let URLString = {{projectName}}API.basePath + path
{{#bodyParam}}
let parameters = {{paramName}}{{^required}}?{{/required}}.encodeToJSON() as? [String:AnyObject]{{/bodyParam}}{{^bodyParam}}
let parameters = {{paramName}}{{^required}}?{{/required}}.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
{{#hasQueryParams}}
url?.queryItems = mapValuesToQueryItems(values:[
{{#queryParams}}
"{{paramName}}": {{paramName}}{{#hasMore}}, {{/hasMore}}
{{/queryParams}}
])
{{/hasQueryParams}}
{{/bodyParam}}{{^bodyParam}}
let nillableParameters: [String:Any?] = {{^queryParams}}{{^formParams}}[:]{{/formParams}}{{#formParams}}{{^secondaryParam}}[{{/secondaryParam}}
{{> _param}}{{#hasMore}},{{/hasMore}}{{^hasMore}}
]{{/hasMore}}{{/formParams}}{{/queryParams}}{{#queryParams}}{{^secondaryParam}}[{{/secondaryParam}}
@ -121,7 +140,7 @@ open class {{classname}}: APIBase {
let requestBuilder: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.Type = {{projectName}}API.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "{{httpMethod}}", URLString: URLString, parameters: convertedParameters, isBody: {{^queryParams}}{{^formParams}}true{{/formParams}}{{/queryParams}}{{#queryParams}}{{^formParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/formParams}}{{/queryParams}}{{#formParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/formParams}})
return requestBuilder.init(method: "{{httpMethod}}", URLString: {{#bodyParam}}(url?.string ?? URLString){{/bodyParam}}{{^bodyParam}}URLString{{/bodyParam}}, parameters: convertedParameters, isBody: {{hasBodyParam}})
}
{{/operation}}

View File

@ -10,6 +10,15 @@ import Alamofire
open class FakeAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
To test \"client\" model
@ -26,6 +35,7 @@ open class FakeAPI: APIBase {
/**
To test \"client\" model
- PATCH /fake
- To test \"client\" model
- examples: [{contentType=application/json, example={
"client" : "aeiou"
}}]
@ -39,11 +49,14 @@ open class FakeAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "PATCH", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -182,6 +195,7 @@ open class FakeAPI: APIBase {
/**
To test enum parameters
- GET /fake
- To test enum parameters
- parameter enumFormStringArray: (form) Form parameter enum test (string array) (optional)
- parameter enumFormString: (form) Form parameter enum test (string) (optional, default to -efg)

View File

@ -10,6 +10,15 @@ import Alamofire
open class PetAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
Add a new pet to the store
@ -40,11 +49,14 @@ open class PetAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -85,7 +97,7 @@ open class PetAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -357,7 +369,7 @@ open class PetAPI: APIBase {
let requestBuilder: RequestBuilder<Pet>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -390,11 +402,14 @@ open class PetAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "PUT", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "PUT", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**

View File

@ -10,6 +10,15 @@ import Alamofire
open class StoreAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
Delete purchase order by ID
@ -45,7 +54,7 @@ open class StoreAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -85,7 +94,7 @@ open class StoreAPI: APIBase {
let requestBuilder: RequestBuilder<[String:Int32]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -153,7 +162,7 @@ open class StoreAPI: APIBase {
let requestBuilder: RequestBuilder<Order>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -213,11 +222,14 @@ open class StoreAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Order>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
}

View File

@ -10,6 +10,15 @@ import Alamofire
open class UserAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
Create user
@ -37,11 +46,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -71,11 +83,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -105,11 +120,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -147,7 +165,7 @@ open class UserAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -223,7 +241,7 @@ open class UserAPI: APIBase {
let requestBuilder: RequestBuilder<User>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -303,7 +321,7 @@ open class UserAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -336,11 +354,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "PUT", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "PUT", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
}

View File

@ -11,6 +11,15 @@ import PromiseKit
open class FakeAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
To test \"client\" model
@ -44,6 +53,7 @@ open class FakeAPI: APIBase {
/**
To test \"client\" model
- PATCH /fake
- To test \"client\" model
- examples: [{contentType=application/json, example={
"client" : "aeiou"
}}]
@ -57,11 +67,14 @@ open class FakeAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "PATCH", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -220,7 +233,7 @@ open class FakeAPI: APIBase {
- parameter enumQueryDouble: (form) Query parameter enum test (double) (optional)
- parameter completion: completion handler to receive the data and the error objects
*/
open class func testEnumParameters(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Double? = nil, enumQueryDouble: Double? = nil, completion: @escaping ((_ error: Error?) -> Void)) {
open class func testEnumParameters(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Int32? = nil, enumQueryDouble: Double? = nil, completion: @escaping ((_ error: Error?) -> Void)) {
testEnumParametersWithRequestBuilder(enumFormStringArray: enumFormStringArray, enumFormString: enumFormString, enumQueryStringArray: enumQueryStringArray, enumQueryString: enumQueryString, enumQueryInteger: enumQueryInteger, enumQueryDouble: enumQueryDouble).execute { (response, error) -> Void in
completion(error);
}
@ -237,7 +250,7 @@ open class FakeAPI: APIBase {
- parameter enumQueryDouble: (form) Query parameter enum test (double) (optional)
- returns: Promise<Void>
*/
open class func testEnumParameters( enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Double? = nil, enumQueryDouble: Double? = nil) -> Promise<Void> {
open class func testEnumParameters( enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Int32? = nil, enumQueryDouble: Double? = nil) -> Promise<Void> {
let deferred = Promise<Void>.pending()
testEnumParameters(enumFormStringArray: enumFormStringArray, enumFormString: enumFormString, enumQueryStringArray: enumQueryStringArray, enumQueryString: enumQueryString, enumQueryInteger: enumQueryInteger, enumQueryDouble: enumQueryDouble) { error in
if let error = error {
@ -252,6 +265,7 @@ open class FakeAPI: APIBase {
/**
To test enum parameters
- GET /fake
- To test enum parameters
- parameter enumFormStringArray: (form) Form parameter enum test (string array) (optional)
- parameter enumFormString: (form) Form parameter enum test (string) (optional, default to -efg)
@ -262,14 +276,14 @@ open class FakeAPI: APIBase {
- returns: RequestBuilder<Void>
*/
open class func testEnumParametersWithRequestBuilder(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Double? = nil, enumQueryDouble: Double? = nil) -> RequestBuilder<Void> {
open class func testEnumParametersWithRequestBuilder(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Int32? = nil, enumQueryDouble: Double? = nil) -> RequestBuilder<Void> {
let path = "/fake"
let URLString = PetstoreClientAPI.basePath + path
let nillableParameters: [String:Any?] = [
"enum_query_string_array": enumQueryStringArray,
"enum_query_string": enumQueryString?.rawValue,
"enum_query_integer": enumQueryInteger
"enum_query_integer": enumQueryInteger?.encodeToJSON()
]
let parameters = APIHelper.rejectNil(nillableParameters)

View File

@ -11,6 +11,15 @@ import PromiseKit
open class PetAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
Add a new pet to the store
@ -58,11 +67,14 @@ open class PetAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -120,7 +132,7 @@ open class PetAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -443,7 +455,7 @@ open class PetAPI: APIBase {
let requestBuilder: RequestBuilder<Pet>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -493,11 +505,14 @@ open class PetAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "PUT", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "PUT", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**

View File

@ -11,6 +11,15 @@ import PromiseKit
open class StoreAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
Delete purchase order by ID
@ -63,7 +72,7 @@ open class StoreAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -119,7 +128,7 @@ open class StoreAPI: APIBase {
let requestBuilder: RequestBuilder<[String:Int32]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -204,7 +213,7 @@ open class StoreAPI: APIBase {
let requestBuilder: RequestBuilder<Order>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -281,11 +290,14 @@ open class StoreAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Order>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
}

View File

@ -11,6 +11,15 @@ import PromiseKit
open class UserAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
Create user
@ -55,11 +64,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -106,11 +118,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -157,11 +172,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -216,7 +234,7 @@ open class UserAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -309,7 +327,7 @@ open class UserAPI: APIBase {
let requestBuilder: RequestBuilder<User>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -423,7 +441,7 @@ open class UserAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -474,11 +492,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "PUT", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "PUT", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
}

View File

@ -11,6 +11,15 @@ import RxSwift
open class FakeAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
To test \"client\" model
@ -46,6 +55,7 @@ open class FakeAPI: APIBase {
/**
To test \"client\" model
- PATCH /fake
- To test \"client\" model
- examples: [{contentType=application/json, example={
"client" : "aeiou"
}}]
@ -59,11 +69,14 @@ open class FakeAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "PATCH", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -224,7 +237,7 @@ open class FakeAPI: APIBase {
- parameter enumQueryDouble: (form) Query parameter enum test (double) (optional)
- parameter completion: completion handler to receive the data and the error objects
*/
open class func testEnumParameters(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Double? = nil, enumQueryDouble: Double? = nil, completion: @escaping ((_ error: Error?) -> Void)) {
open class func testEnumParameters(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Int32? = nil, enumQueryDouble: Double? = nil, completion: @escaping ((_ error: Error?) -> Void)) {
testEnumParametersWithRequestBuilder(enumFormStringArray: enumFormStringArray, enumFormString: enumFormString, enumQueryStringArray: enumQueryStringArray, enumQueryString: enumQueryString, enumQueryInteger: enumQueryInteger, enumQueryDouble: enumQueryDouble).execute { (response, error) -> Void in
completion(error);
}
@ -241,7 +254,7 @@ open class FakeAPI: APIBase {
- parameter enumQueryDouble: (form) Query parameter enum test (double) (optional)
- returns: Observable<Void>
*/
open class func testEnumParameters(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Double? = nil, enumQueryDouble: Double? = nil) -> Observable<Void> {
open class func testEnumParameters(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Int32? = nil, enumQueryDouble: Double? = nil) -> Observable<Void> {
return Observable.create { observer -> Disposable in
testEnumParameters(enumFormStringArray: enumFormStringArray, enumFormString: enumFormString, enumQueryStringArray: enumQueryStringArray, enumQueryString: enumQueryString, enumQueryInteger: enumQueryInteger, enumQueryDouble: enumQueryDouble) { error in
if let error = error {
@ -258,6 +271,7 @@ open class FakeAPI: APIBase {
/**
To test enum parameters
- GET /fake
- To test enum parameters
- parameter enumFormStringArray: (form) Form parameter enum test (string array) (optional)
- parameter enumFormString: (form) Form parameter enum test (string) (optional, default to -efg)
@ -268,14 +282,14 @@ open class FakeAPI: APIBase {
- returns: RequestBuilder<Void>
*/
open class func testEnumParametersWithRequestBuilder(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Double? = nil, enumQueryDouble: Double? = nil) -> RequestBuilder<Void> {
open class func testEnumParametersWithRequestBuilder(enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: Int32? = nil, enumQueryDouble: Double? = nil) -> RequestBuilder<Void> {
let path = "/fake"
let URLString = PetstoreClientAPI.basePath + path
let nillableParameters: [String:Any?] = [
"enum_query_string_array": enumQueryStringArray,
"enum_query_string": enumQueryString?.rawValue,
"enum_query_integer": enumQueryInteger
"enum_query_integer": enumQueryInteger?.encodeToJSON()
]
let parameters = APIHelper.rejectNil(nillableParameters)

View File

@ -11,6 +11,15 @@ import RxSwift
open class PetAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
Add a new pet to the store
@ -60,11 +69,14 @@ open class PetAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -124,7 +136,7 @@ open class PetAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -453,7 +465,7 @@ open class PetAPI: APIBase {
let requestBuilder: RequestBuilder<Pet>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -505,11 +517,14 @@ open class PetAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "PUT", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "PUT", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**

View File

@ -11,6 +11,15 @@ import RxSwift
open class StoreAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
Delete purchase order by ID
@ -65,7 +74,7 @@ open class StoreAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -123,7 +132,7 @@ open class StoreAPI: APIBase {
let requestBuilder: RequestBuilder<[String:Int32]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -210,7 +219,7 @@ open class StoreAPI: APIBase {
let requestBuilder: RequestBuilder<Order>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -289,11 +298,14 @@ open class StoreAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Order>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
}

View File

@ -11,6 +11,15 @@ import RxSwift
open class UserAPI: APIBase {
public class func mapValuesToQueryItems(values: [String:Any?]) -> [URLQueryItem] {
return values
.filter { $0.1 != nil }
.map { (item: (_key: String, _value: Any?)) -> URLQueryItem in
URLQueryItem(name: item._key, value:"\(item._value!)")
}
}
/**
Create user
@ -57,11 +66,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -110,11 +122,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -163,11 +178,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
/**
@ -224,7 +242,7 @@ open class UserAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -319,7 +337,7 @@ open class UserAPI: APIBase {
let requestBuilder: RequestBuilder<User>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -437,7 +455,7 @@ open class UserAPI: APIBase {
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false)
}
/**
@ -490,11 +508,14 @@ open class UserAPI: APIBase {
let URLString = PetstoreClientAPI.basePath + path
let parameters = body.encodeToJSON() as? [String:AnyObject]
let url = NSURLComponents(string: URLString)
let convertedParameters = APIHelper.convertBoolToString(parameters)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "PUT", URLString: URLString, parameters: convertedParameters, isBody: true)
return requestBuilder.init(method: "PUT", URLString: (url?.string ?? URLString), parameters: convertedParameters, isBody: true)
}
}