forked from loafle/openapi-generator-original
Swift3: non dictionary body type (#6531)
* Adding support for non dictionary body types. * Adding test for rest of the swift3 types * Cleaning up implementation of makeRequest and adding better error handling. * Adding ClientError for error produced before request is sent. * Changing how encoding of body data is handled. * Cleaning up code that was modified.
This commit is contained in:
@@ -32,7 +32,7 @@ open class APIBase {
|
||||
open class RequestBuilder<T> {
|
||||
var credential: URLCredential?
|
||||
var headers: [String:String]
|
||||
let parameters: [String:Any]?
|
||||
let parameters: Any?
|
||||
let isBody: Bool
|
||||
let method: String
|
||||
let URLString: String
|
||||
@@ -40,7 +40,7 @@ open class RequestBuilder<T> {
|
||||
/// Optional block to obtain a reference to the request's progress instance when available.
|
||||
public var onProgressReady: ((Progress) -> ())?
|
||||
|
||||
required public init(method: String, URLString: String, parameters: [String:Any]?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
self.method = method
|
||||
self.URLString = URLString
|
||||
self.parameters = parameters
|
||||
|
||||
+20
-5
@@ -43,11 +43,24 @@ private struct SynchronizedDictionary<K: Hashable, V> {
|
||||
|
||||
}
|
||||
|
||||
class JSONEncodingWrapper: ParameterEncoding {
|
||||
var bodyParameters: Any?
|
||||
var encoding: JSONEncoding = JSONEncoding()
|
||||
|
||||
public init(parameters: Any?) {
|
||||
self.bodyParameters = parameters
|
||||
}
|
||||
|
||||
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
|
||||
return try encoding.encode(urlRequest, withJSONObject: bodyParameters)
|
||||
}
|
||||
}
|
||||
|
||||
// Store manager to retain its reference
|
||||
private var managerStore = SynchronizedDictionary<String, Alamofire.SessionManager>()
|
||||
|
||||
open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
required public init(method: String, URLString: String, parameters: [String : Any]?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody, headers: headers)
|
||||
}
|
||||
|
||||
@@ -77,7 +90,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
configuration (e.g. to override the cache policy).
|
||||
*/
|
||||
open func makeRequest(manager: SessionManager, method: HTTPMethod, encoding: ParameterEncoding, headers: [String:String]) -> DataRequest {
|
||||
return manager.request(URLString, method: method, parameters: parameters, encoding: encoding, headers: headers)
|
||||
return manager.request(URLString, method: method, parameters: parameters as? Parameters, encoding: encoding, headers: headers)
|
||||
}
|
||||
|
||||
override open func execute(_ completion: @escaping (_ response: Response<T>?, _ error: ErrorResponse?) -> Void) {
|
||||
@@ -86,15 +99,17 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
let manager = createSessionManager()
|
||||
managerStore[managerId] = manager
|
||||
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncoding() : URLEncoding()
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncodingWrapper(parameters: parameters) : URLEncoding()
|
||||
|
||||
let xMethod = Alamofire.HTTPMethod(rawValue: method)
|
||||
let fileKeys = parameters == nil ? [] : parameters!.filter { $1 is NSURL }
|
||||
|
||||
let param = parameters as? Parameters
|
||||
let fileKeys = param == nil ? [] : param!.filter { $1 is NSURL }
|
||||
.map { $0.0 }
|
||||
|
||||
if fileKeys.count > 0 {
|
||||
manager.upload(multipartFormData: { mpForm in
|
||||
for (k, v) in self.parameters! {
|
||||
for (k, v) in param! {
|
||||
switch v {
|
||||
case let fileURL as URL:
|
||||
if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) {
|
||||
|
||||
@@ -123,7 +123,7 @@ open class {{classname}}: APIBase {
|
||||
path = path.replacingOccurrences(of: "{{=<% %>=}}{<%baseName%>}<%={{ }}=%>", 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]
|
||||
let parameters = {{paramName}}{{^required}}?{{/required}}.encodeToJSON()
|
||||
{{/bodyParam}}
|
||||
{{^bodyParam}}
|
||||
{{#hasFormParams}}
|
||||
|
||||
@@ -32,7 +32,7 @@ open class APIBase {
|
||||
open class RequestBuilder<T> {
|
||||
var credential: URLCredential?
|
||||
var headers: [String:String]
|
||||
let parameters: [String:Any]?
|
||||
let parameters: Any?
|
||||
let isBody: Bool
|
||||
let method: String
|
||||
let URLString: String
|
||||
@@ -40,7 +40,7 @@ open class RequestBuilder<T> {
|
||||
/// Optional block to obtain a reference to the request's progress instance when available.
|
||||
public var onProgressReady: ((Progress) -> ())?
|
||||
|
||||
required public init(method: String, URLString: String, parameters: [String:Any]?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
self.method = method
|
||||
self.URLString = URLString
|
||||
self.parameters = parameters
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// AnotherFakeAPI.swift
|
||||
//
|
||||
// Generated by swagger-codegen
|
||||
// https://github.com/swagger-api/swagger-codegen
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Alamofire
|
||||
|
||||
|
||||
open class AnotherFakeAPI: APIBase {
|
||||
/**
|
||||
To test special tags
|
||||
- parameter body: (body) client model
|
||||
- parameter completion: completion handler to receive the data and the error objects
|
||||
*/
|
||||
open class func testSpecialTags(body: Client, completion: @escaping ((_ data: Client?, _ error: ErrorResponse?) -> Void)) {
|
||||
testSpecialTagsWithRequestBuilder(body: body).execute { (response, error) -> Void in
|
||||
completion(response?.body, error)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
To test special tags
|
||||
- PATCH /another-fake/dummy
|
||||
- To test special tags
|
||||
|
||||
- examples: [{contentType=application/json, example={
|
||||
"client" : "client"
|
||||
}}]
|
||||
- parameter body: (body) client model
|
||||
- returns: RequestBuilder<Client>
|
||||
*/
|
||||
open class func testSpecialTagsWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/another-fake/dummy"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
|
||||
|
||||
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true)
|
||||
}
|
||||
|
||||
}
|
||||
+7
-7
@@ -32,7 +32,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterBooleanSerializeWithRequestBuilder(body: OuterBoolean? = nil) -> RequestBuilder<OuterBoolean> {
|
||||
let path = "/fake/outer/boolean"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -67,7 +67,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterCompositeSerializeWithRequestBuilder(body: OuterComposite? = nil) -> RequestBuilder<OuterComposite> {
|
||||
let path = "/fake/outer/composite"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -98,7 +98,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterNumberSerializeWithRequestBuilder(body: OuterNumber? = nil) -> RequestBuilder<OuterNumber> {
|
||||
let path = "/fake/outer/number"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -129,7 +129,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterStringSerializeWithRequestBuilder(body: OuterString? = nil) -> RequestBuilder<OuterString> {
|
||||
let path = "/fake/outer/string"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -164,7 +164,7 @@ open class FakeAPI: APIBase {
|
||||
open class func testClientModelWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/fake"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -307,7 +307,7 @@ open class FakeAPI: APIBase {
|
||||
*/
|
||||
public enum EnumQueryInteger_testEnumParameters: Int32 {
|
||||
case _1 = 1
|
||||
case numberminus2 = -2
|
||||
case number2 = -2
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -315,7 +315,7 @@ open class FakeAPI: APIBase {
|
||||
*/
|
||||
public enum EnumQueryDouble_testEnumParameters: Double {
|
||||
case _11 = 1.1
|
||||
case numberminus12 = -1.2
|
||||
case number12 = -1.2
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
//
|
||||
// FakeClassnameTags123API.swift
|
||||
//
|
||||
// Generated by swagger-codegen
|
||||
// https://github.com/swagger-api/swagger-codegen
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Alamofire
|
||||
|
||||
|
||||
open class FakeClassnameTags123API: APIBase {
|
||||
/**
|
||||
To test class name in snake case
|
||||
- parameter body: (body) client model
|
||||
- parameter completion: completion handler to receive the data and the error objects
|
||||
*/
|
||||
open class func testClassname(body: Client, completion: @escaping ((_ data: Client?, _ error: ErrorResponse?) -> Void)) {
|
||||
testClassnameWithRequestBuilder(body: body).execute { (response, error) -> Void in
|
||||
completion(response?.body, error)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
To test class name in snake case
|
||||
- PATCH /fake_classname_test
|
||||
- API Key:
|
||||
- type: apiKey api_key_query (QUERY)
|
||||
- name: api_key_query
|
||||
- examples: [{contentType=application/json, example={
|
||||
"client" : "client"
|
||||
}}]
|
||||
- parameter body: (body) client model
|
||||
- returns: RequestBuilder<Client>
|
||||
*/
|
||||
open class func testClassnameWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/fake_classname_test"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
|
||||
|
||||
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true)
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -35,7 +35,7 @@ open class PetAPI: APIBase {
|
||||
open class func addPetWithRequestBuilder(body: Pet) -> RequestBuilder<Void> {
|
||||
let path = "/pet"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -448,7 +448,7 @@ open class PetAPI: APIBase {
|
||||
open class func updatePetWithRequestBuilder(body: Pet) -> RequestBuilder<Void> {
|
||||
let path = "/pet"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+1
-1
@@ -194,7 +194,7 @@ open class StoreAPI: APIBase {
|
||||
open class func placeOrderWithRequestBuilder(body: Order) -> RequestBuilder<Order> {
|
||||
let path = "/store/order"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+4
-4
@@ -33,7 +33,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUserWithRequestBuilder(body: User) -> RequestBuilder<Void> {
|
||||
let path = "/user"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -65,7 +65,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUsersWithArrayInputWithRequestBuilder(body: [User]) -> RequestBuilder<Void> {
|
||||
let path = "/user/createWithArray"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -97,7 +97,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUsersWithListInputWithRequestBuilder(body: [User]) -> RequestBuilder<Void> {
|
||||
let path = "/user/createWithList"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -308,7 +308,7 @@ open class UserAPI: APIBase {
|
||||
var path = "/user/{username}"
|
||||
path = path.replacingOccurrences(of: "{username}", with: "\(username)", options: .literal, range: nil)
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+20
-5
@@ -43,11 +43,24 @@ private struct SynchronizedDictionary<K: Hashable, V> {
|
||||
|
||||
}
|
||||
|
||||
class JSONEncodingWrapper: ParameterEncoding {
|
||||
var bodyParameters: Any?
|
||||
var encoding: JSONEncoding = JSONEncoding()
|
||||
|
||||
public init(parameters: Any?) {
|
||||
self.bodyParameters = parameters
|
||||
}
|
||||
|
||||
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
|
||||
return try encoding.encode(urlRequest, withJSONObject: bodyParameters)
|
||||
}
|
||||
}
|
||||
|
||||
// Store manager to retain its reference
|
||||
private var managerStore = SynchronizedDictionary<String, Alamofire.SessionManager>()
|
||||
|
||||
open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
required public init(method: String, URLString: String, parameters: [String : Any]?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody, headers: headers)
|
||||
}
|
||||
|
||||
@@ -77,7 +90,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
configuration (e.g. to override the cache policy).
|
||||
*/
|
||||
open func makeRequest(manager: SessionManager, method: HTTPMethod, encoding: ParameterEncoding, headers: [String:String]) -> DataRequest {
|
||||
return manager.request(URLString, method: method, parameters: parameters, encoding: encoding, headers: headers)
|
||||
return manager.request(URLString, method: method, parameters: parameters as? Parameters, encoding: encoding, headers: headers)
|
||||
}
|
||||
|
||||
override open func execute(_ completion: @escaping (_ response: Response<T>?, _ error: ErrorResponse?) -> Void) {
|
||||
@@ -86,15 +99,17 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
let manager = createSessionManager()
|
||||
managerStore[managerId] = manager
|
||||
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncoding() : URLEncoding()
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncodingWrapper(parameters: parameters) : URLEncoding()
|
||||
|
||||
let xMethod = Alamofire.HTTPMethod(rawValue: method)
|
||||
let fileKeys = parameters == nil ? [] : parameters!.filter { $1 is NSURL }
|
||||
|
||||
let param = parameters as? Parameters
|
||||
let fileKeys = param == nil ? [] : param!.filter { $1 is NSURL }
|
||||
.map { $0.0 }
|
||||
|
||||
if fileKeys.count > 0 {
|
||||
manager.upload(multipartFormData: { mpForm in
|
||||
for (k, v) in self.parameters! {
|
||||
for (k, v) in param! {
|
||||
switch v {
|
||||
case let fileURL as URL:
|
||||
if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) {
|
||||
|
||||
+2
-2
@@ -17,11 +17,11 @@ open class EnumTest: JSONEncodable {
|
||||
}
|
||||
public enum EnumInteger: Int32 {
|
||||
case _1 = 1
|
||||
case numberminus1 = -1
|
||||
case number1 = -1
|
||||
}
|
||||
public enum EnumNumber: Double {
|
||||
case _11 = 1.1
|
||||
case numberminus12 = -1.2
|
||||
case number12 = -1.2
|
||||
}
|
||||
public var enumString: EnumString?
|
||||
public var enumInteger: EnumInteger?
|
||||
|
||||
+33
@@ -79,6 +79,39 @@ class UserAPITests: XCTestCase {
|
||||
self.waitForExpectations(timeout: testTimeout, handler: nil)
|
||||
}
|
||||
|
||||
func testCreateUserWithArray() {
|
||||
let expectation = self.expectation(description: "testCreateUserWithArray")
|
||||
let newUser = User()
|
||||
newUser.email = "test@test.com"
|
||||
newUser.firstName = "Test"
|
||||
newUser.lastName = "Tester"
|
||||
newUser.id = 1000
|
||||
newUser.password = "test!"
|
||||
newUser.phone = "867-5309"
|
||||
newUser.username = "test@test.com"
|
||||
newUser.userStatus = 0
|
||||
|
||||
let newUser2 = User()
|
||||
newUser2.email = "test2@test.com"
|
||||
newUser2.firstName = "Test2"
|
||||
newUser2.lastName = "Tester2"
|
||||
newUser2.id = 1001
|
||||
newUser2.password = "test2!"
|
||||
newUser2.phone = "867-5302"
|
||||
newUser2.username = "test2@test.com"
|
||||
newUser2.userStatus = 0
|
||||
|
||||
UserAPI.createUsersWithArrayInput(body: [newUser, newUser2]) { (error) in
|
||||
guard error == nil else {
|
||||
XCTFail("error creating users")
|
||||
return
|
||||
}
|
||||
|
||||
expectation.fulfill()
|
||||
}
|
||||
self.waitForExpectations(timeout: testTimeout, handler: nil)
|
||||
}
|
||||
|
||||
func test2GetUser() {
|
||||
let expectation = self.expectation(description: "testGetUser")
|
||||
|
||||
|
||||
+2
-2
@@ -32,7 +32,7 @@ open class APIBase {
|
||||
open class RequestBuilder<T> {
|
||||
var credential: URLCredential?
|
||||
var headers: [String:String]
|
||||
let parameters: [String:Any]?
|
||||
let parameters: Any?
|
||||
let isBody: Bool
|
||||
let method: String
|
||||
let URLString: String
|
||||
@@ -40,7 +40,7 @@ open class RequestBuilder<T> {
|
||||
/// Optional block to obtain a reference to the request's progress instance when available.
|
||||
public var onProgressReady: ((Progress) -> ())?
|
||||
|
||||
required public init(method: String, URLString: String, parameters: [String:Any]?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
self.method = method
|
||||
self.URLString = URLString
|
||||
self.parameters = parameters
|
||||
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
//
|
||||
// AnotherFakeAPI.swift
|
||||
//
|
||||
// Generated by swagger-codegen
|
||||
// https://github.com/swagger-api/swagger-codegen
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Alamofire
|
||||
import PromiseKit
|
||||
|
||||
|
||||
open class AnotherFakeAPI: APIBase {
|
||||
/**
|
||||
To test special tags
|
||||
- parameter body: (body) client model
|
||||
- parameter completion: completion handler to receive the data and the error objects
|
||||
*/
|
||||
open class func testSpecialTags(body: Client, completion: @escaping ((_ data: Client?, _ error: ErrorResponse?) -> Void)) {
|
||||
testSpecialTagsWithRequestBuilder(body: body).execute { (response, error) -> Void in
|
||||
completion(response?.body, error)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
To test special tags
|
||||
- parameter body: (body) client model
|
||||
- returns: Promise<Client>
|
||||
*/
|
||||
open class func testSpecialTags( body: Client) -> Promise<Client> {
|
||||
let deferred = Promise<Client>.pending()
|
||||
testSpecialTags(body: body) { data, error in
|
||||
if let error = error {
|
||||
deferred.reject(error)
|
||||
} else {
|
||||
deferred.fulfill(data!)
|
||||
}
|
||||
}
|
||||
return deferred.promise
|
||||
}
|
||||
|
||||
/**
|
||||
To test special tags
|
||||
- PATCH /another-fake/dummy
|
||||
- To test special tags
|
||||
|
||||
- examples: [{contentType=application/json, example={
|
||||
"client" : "client"
|
||||
}}]
|
||||
- parameter body: (body) client model
|
||||
- returns: RequestBuilder<Client>
|
||||
*/
|
||||
open class func testSpecialTagsWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/another-fake/dummy"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
|
||||
|
||||
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true)
|
||||
}
|
||||
|
||||
}
|
||||
+7
-7
@@ -48,7 +48,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterBooleanSerializeWithRequestBuilder(body: OuterBoolean? = nil) -> RequestBuilder<OuterBoolean> {
|
||||
let path = "/fake/outer/boolean"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -98,7 +98,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterCompositeSerializeWithRequestBuilder(body: OuterComposite? = nil) -> RequestBuilder<OuterComposite> {
|
||||
let path = "/fake/outer/composite"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -144,7 +144,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterNumberSerializeWithRequestBuilder(body: OuterNumber? = nil) -> RequestBuilder<OuterNumber> {
|
||||
let path = "/fake/outer/number"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -190,7 +190,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterStringSerializeWithRequestBuilder(body: OuterString? = nil) -> RequestBuilder<OuterString> {
|
||||
let path = "/fake/outer/string"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -241,7 +241,7 @@ open class FakeAPI: APIBase {
|
||||
open class func testClientModelWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/fake"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -413,7 +413,7 @@ open class FakeAPI: APIBase {
|
||||
*/
|
||||
public enum EnumQueryInteger_testEnumParameters: Int32 {
|
||||
case _1 = 1
|
||||
case numberminus2 = -2
|
||||
case number2 = -2
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -421,7 +421,7 @@ open class FakeAPI: APIBase {
|
||||
*/
|
||||
public enum EnumQueryDouble_testEnumParameters: Double {
|
||||
case _11 = 1.1
|
||||
case numberminus12 = -1.2
|
||||
case number12 = -1.2
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
//
|
||||
// FakeClassnameTags123API.swift
|
||||
//
|
||||
// Generated by swagger-codegen
|
||||
// https://github.com/swagger-api/swagger-codegen
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Alamofire
|
||||
import PromiseKit
|
||||
|
||||
|
||||
open class FakeClassnameTags123API: APIBase {
|
||||
/**
|
||||
To test class name in snake case
|
||||
- parameter body: (body) client model
|
||||
- parameter completion: completion handler to receive the data and the error objects
|
||||
*/
|
||||
open class func testClassname(body: Client, completion: @escaping ((_ data: Client?, _ error: ErrorResponse?) -> Void)) {
|
||||
testClassnameWithRequestBuilder(body: body).execute { (response, error) -> Void in
|
||||
completion(response?.body, error)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
To test class name in snake case
|
||||
- parameter body: (body) client model
|
||||
- returns: Promise<Client>
|
||||
*/
|
||||
open class func testClassname( body: Client) -> Promise<Client> {
|
||||
let deferred = Promise<Client>.pending()
|
||||
testClassname(body: body) { data, error in
|
||||
if let error = error {
|
||||
deferred.reject(error)
|
||||
} else {
|
||||
deferred.fulfill(data!)
|
||||
}
|
||||
}
|
||||
return deferred.promise
|
||||
}
|
||||
|
||||
/**
|
||||
To test class name in snake case
|
||||
- PATCH /fake_classname_test
|
||||
- API Key:
|
||||
- type: apiKey api_key_query (QUERY)
|
||||
- name: api_key_query
|
||||
- examples: [{contentType=application/json, example={
|
||||
"client" : "client"
|
||||
}}]
|
||||
- parameter body: (body) client model
|
||||
- returns: RequestBuilder<Client>
|
||||
*/
|
||||
open class func testClassnameWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/fake_classname_test"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
|
||||
|
||||
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true)
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -52,7 +52,7 @@ open class PetAPI: APIBase {
|
||||
open class func addPetWithRequestBuilder(body: Pet) -> RequestBuilder<Void> {
|
||||
let path = "/pet"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -546,7 +546,7 @@ open class PetAPI: APIBase {
|
||||
open class func updatePetWithRequestBuilder(body: Pet) -> RequestBuilder<Void> {
|
||||
let path = "/pet"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+1
-1
@@ -258,7 +258,7 @@ open class StoreAPI: APIBase {
|
||||
open class func placeOrderWithRequestBuilder(body: Order) -> RequestBuilder<Order> {
|
||||
let path = "/store/order"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+4
-4
@@ -50,7 +50,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUserWithRequestBuilder(body: User) -> RequestBuilder<Void> {
|
||||
let path = "/user"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -98,7 +98,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUsersWithArrayInputWithRequestBuilder(body: [User]) -> RequestBuilder<Void> {
|
||||
let path = "/user/createWithArray"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -146,7 +146,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUsersWithListInputWithRequestBuilder(body: [User]) -> RequestBuilder<Void> {
|
||||
let path = "/user/createWithList"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -438,7 +438,7 @@ open class UserAPI: APIBase {
|
||||
var path = "/user/{username}"
|
||||
path = path.replacingOccurrences(of: "{username}", with: "\(username)", options: .literal, range: nil)
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+20
-5
@@ -43,11 +43,24 @@ private struct SynchronizedDictionary<K: Hashable, V> {
|
||||
|
||||
}
|
||||
|
||||
class JSONEncodingWrapper: ParameterEncoding {
|
||||
var bodyParameters: Any?
|
||||
var encoding: JSONEncoding = JSONEncoding()
|
||||
|
||||
public init(parameters: Any?) {
|
||||
self.bodyParameters = parameters
|
||||
}
|
||||
|
||||
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
|
||||
return try encoding.encode(urlRequest, withJSONObject: bodyParameters)
|
||||
}
|
||||
}
|
||||
|
||||
// Store manager to retain its reference
|
||||
private var managerStore = SynchronizedDictionary<String, Alamofire.SessionManager>()
|
||||
|
||||
open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
required public init(method: String, URLString: String, parameters: [String : Any]?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody, headers: headers)
|
||||
}
|
||||
|
||||
@@ -77,7 +90,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
configuration (e.g. to override the cache policy).
|
||||
*/
|
||||
open func makeRequest(manager: SessionManager, method: HTTPMethod, encoding: ParameterEncoding, headers: [String:String]) -> DataRequest {
|
||||
return manager.request(URLString, method: method, parameters: parameters, encoding: encoding, headers: headers)
|
||||
return manager.request(URLString, method: method, parameters: parameters as? Parameters, encoding: encoding, headers: headers)
|
||||
}
|
||||
|
||||
override open func execute(_ completion: @escaping (_ response: Response<T>?, _ error: ErrorResponse?) -> Void) {
|
||||
@@ -86,15 +99,17 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
let manager = createSessionManager()
|
||||
managerStore[managerId] = manager
|
||||
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncoding() : URLEncoding()
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncodingWrapper(parameters: parameters) : URLEncoding()
|
||||
|
||||
let xMethod = Alamofire.HTTPMethod(rawValue: method)
|
||||
let fileKeys = parameters == nil ? [] : parameters!.filter { $1 is NSURL }
|
||||
|
||||
let param = parameters as? Parameters
|
||||
let fileKeys = param == nil ? [] : param!.filter { $1 is NSURL }
|
||||
.map { $0.0 }
|
||||
|
||||
if fileKeys.count > 0 {
|
||||
manager.upload(multipartFormData: { mpForm in
|
||||
for (k, v) in self.parameters! {
|
||||
for (k, v) in param! {
|
||||
switch v {
|
||||
case let fileURL as URL:
|
||||
if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) {
|
||||
|
||||
+2
-2
@@ -17,11 +17,11 @@ open class EnumTest: JSONEncodable {
|
||||
}
|
||||
public enum EnumInteger: Int32 {
|
||||
case _1 = 1
|
||||
case numberminus1 = -1
|
||||
case number1 = -1
|
||||
}
|
||||
public enum EnumNumber: Double {
|
||||
case _11 = 1.1
|
||||
case numberminus12 = -1.2
|
||||
case number12 = -1.2
|
||||
}
|
||||
public var enumString: EnumString?
|
||||
public var enumInteger: EnumInteger?
|
||||
|
||||
+28
@@ -48,6 +48,34 @@ class UserAPITests: XCTestCase {
|
||||
self.waitForExpectations(timeout: testTimeout, handler: nil)
|
||||
}
|
||||
|
||||
func testCreateUserWithArray() {
|
||||
let expectation = self.expectation(description: "testCreateUserWithArray")
|
||||
let newUser = User()
|
||||
newUser.email = "test@test.com"
|
||||
newUser.firstName = "Test"
|
||||
newUser.lastName = "Tester"
|
||||
newUser.id = 1000
|
||||
newUser.password = "test!"
|
||||
newUser.phone = "867-5309"
|
||||
newUser.username = "test@test.com"
|
||||
newUser.userStatus = 0
|
||||
|
||||
let newUser2 = User()
|
||||
newUser2.email = "test2@test.com"
|
||||
newUser2.firstName = "Test2"
|
||||
newUser2.lastName = "Tester2"
|
||||
newUser2.id = 1001
|
||||
newUser2.password = "test2!"
|
||||
newUser2.phone = "867-5302"
|
||||
newUser2.username = "test2@test.com"
|
||||
newUser2.userStatus = 0
|
||||
|
||||
_ = UserAPI.createUsersWithArrayInput(body: [newUser, newUser2]).then {
|
||||
expectation.fulfill()
|
||||
}
|
||||
self.waitForExpectations(timeout: testTimeout, handler: nil)
|
||||
}
|
||||
|
||||
func test2GetUser() {
|
||||
let expectation = self.expectation(description: "testGetUser")
|
||||
UserAPI.getUserByName(username: "test@test.com").then {user -> Void in
|
||||
|
||||
@@ -32,7 +32,7 @@ open class APIBase {
|
||||
open class RequestBuilder<T> {
|
||||
var credential: URLCredential?
|
||||
var headers: [String:String]
|
||||
let parameters: [String:Any]?
|
||||
let parameters: Any?
|
||||
let isBody: Bool
|
||||
let method: String
|
||||
let URLString: String
|
||||
@@ -40,7 +40,7 @@ open class RequestBuilder<T> {
|
||||
/// Optional block to obtain a reference to the request's progress instance when available.
|
||||
public var onProgressReady: ((Progress) -> ())?
|
||||
|
||||
required public init(method: String, URLString: String, parameters: [String:Any]?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
self.method = method
|
||||
self.URLString = URLString
|
||||
self.parameters = parameters
|
||||
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
//
|
||||
// AnotherFakeAPI.swift
|
||||
//
|
||||
// Generated by swagger-codegen
|
||||
// https://github.com/swagger-api/swagger-codegen
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Alamofire
|
||||
import RxSwift
|
||||
|
||||
|
||||
open class AnotherFakeAPI: APIBase {
|
||||
/**
|
||||
To test special tags
|
||||
- parameter body: (body) client model
|
||||
- parameter completion: completion handler to receive the data and the error objects
|
||||
*/
|
||||
open class func testSpecialTags(body: Client, completion: @escaping ((_ data: Client?, _ error: ErrorResponse?) -> Void)) {
|
||||
testSpecialTagsWithRequestBuilder(body: body).execute { (response, error) -> Void in
|
||||
completion(response?.body, error)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
To test special tags
|
||||
- parameter body: (body) client model
|
||||
- returns: Observable<Client>
|
||||
*/
|
||||
open class func testSpecialTags(body: Client) -> Observable<Client> {
|
||||
return Observable.create { observer -> Disposable in
|
||||
testSpecialTags(body: body) { data, error in
|
||||
if let error = error {
|
||||
observer.on(.error(error as Error))
|
||||
} else {
|
||||
observer.on(.next(data!))
|
||||
}
|
||||
observer.on(.completed)
|
||||
}
|
||||
return Disposables.create()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
To test special tags
|
||||
- PATCH /another-fake/dummy
|
||||
- To test special tags
|
||||
|
||||
- examples: [{contentType=application/json, example={
|
||||
"client" : "client"
|
||||
}}]
|
||||
- parameter body: (body) client model
|
||||
- returns: RequestBuilder<Client>
|
||||
*/
|
||||
open class func testSpecialTagsWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/another-fake/dummy"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
|
||||
|
||||
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true)
|
||||
}
|
||||
|
||||
}
|
||||
+7
-7
@@ -50,7 +50,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterBooleanSerializeWithRequestBuilder(body: OuterBoolean? = nil) -> RequestBuilder<OuterBoolean> {
|
||||
let path = "/fake/outer/boolean"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -102,7 +102,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterCompositeSerializeWithRequestBuilder(body: OuterComposite? = nil) -> RequestBuilder<OuterComposite> {
|
||||
let path = "/fake/outer/composite"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -150,7 +150,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterNumberSerializeWithRequestBuilder(body: OuterNumber? = nil) -> RequestBuilder<OuterNumber> {
|
||||
let path = "/fake/outer/number"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -198,7 +198,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterStringSerializeWithRequestBuilder(body: OuterString? = nil) -> RequestBuilder<OuterString> {
|
||||
let path = "/fake/outer/string"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -251,7 +251,7 @@ open class FakeAPI: APIBase {
|
||||
open class func testClientModelWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/fake"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -425,7 +425,7 @@ open class FakeAPI: APIBase {
|
||||
*/
|
||||
public enum EnumQueryInteger_testEnumParameters: Int32 {
|
||||
case _1 = 1
|
||||
case numberminus2 = -2
|
||||
case number2 = -2
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -433,7 +433,7 @@ open class FakeAPI: APIBase {
|
||||
*/
|
||||
public enum EnumQueryDouble_testEnumParameters: Double {
|
||||
case _11 = 1.1
|
||||
case numberminus12 = -1.2
|
||||
case number12 = -1.2
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
//
|
||||
// FakeClassnameTags123API.swift
|
||||
//
|
||||
// Generated by swagger-codegen
|
||||
// https://github.com/swagger-api/swagger-codegen
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Alamofire
|
||||
import RxSwift
|
||||
|
||||
|
||||
open class FakeClassnameTags123API: APIBase {
|
||||
/**
|
||||
To test class name in snake case
|
||||
- parameter body: (body) client model
|
||||
- parameter completion: completion handler to receive the data and the error objects
|
||||
*/
|
||||
open class func testClassname(body: Client, completion: @escaping ((_ data: Client?, _ error: ErrorResponse?) -> Void)) {
|
||||
testClassnameWithRequestBuilder(body: body).execute { (response, error) -> Void in
|
||||
completion(response?.body, error)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
To test class name in snake case
|
||||
- parameter body: (body) client model
|
||||
- returns: Observable<Client>
|
||||
*/
|
||||
open class func testClassname(body: Client) -> Observable<Client> {
|
||||
return Observable.create { observer -> Disposable in
|
||||
testClassname(body: body) { data, error in
|
||||
if let error = error {
|
||||
observer.on(.error(error as Error))
|
||||
} else {
|
||||
observer.on(.next(data!))
|
||||
}
|
||||
observer.on(.completed)
|
||||
}
|
||||
return Disposables.create()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
To test class name in snake case
|
||||
- PATCH /fake_classname_test
|
||||
- API Key:
|
||||
- type: apiKey api_key_query (QUERY)
|
||||
- name: api_key_query
|
||||
- examples: [{contentType=application/json, example={
|
||||
"client" : "client"
|
||||
}}]
|
||||
- parameter body: (body) client model
|
||||
- returns: RequestBuilder<Client>
|
||||
*/
|
||||
open class func testClassnameWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/fake_classname_test"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
|
||||
|
||||
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true)
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -54,7 +54,7 @@ open class PetAPI: APIBase {
|
||||
open class func addPetWithRequestBuilder(body: Pet) -> RequestBuilder<Void> {
|
||||
let path = "/pet"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -558,7 +558,7 @@ open class PetAPI: APIBase {
|
||||
open class func updatePetWithRequestBuilder(body: Pet) -> RequestBuilder<Void> {
|
||||
let path = "/pet"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+1
-1
@@ -266,7 +266,7 @@ open class StoreAPI: APIBase {
|
||||
open class func placeOrderWithRequestBuilder(body: Order) -> RequestBuilder<Order> {
|
||||
let path = "/store/order"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+4
-4
@@ -52,7 +52,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUserWithRequestBuilder(body: User) -> RequestBuilder<Void> {
|
||||
let path = "/user"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -102,7 +102,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUsersWithArrayInputWithRequestBuilder(body: [User]) -> RequestBuilder<Void> {
|
||||
let path = "/user/createWithArray"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -152,7 +152,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUsersWithListInputWithRequestBuilder(body: [User]) -> RequestBuilder<Void> {
|
||||
let path = "/user/createWithList"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -454,7 +454,7 @@ open class UserAPI: APIBase {
|
||||
var path = "/user/{username}"
|
||||
path = path.replacingOccurrences(of: "{username}", with: "\(username)", options: .literal, range: nil)
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+20
-5
@@ -43,11 +43,24 @@ private struct SynchronizedDictionary<K: Hashable, V> {
|
||||
|
||||
}
|
||||
|
||||
class JSONEncodingWrapper: ParameterEncoding {
|
||||
var bodyParameters: Any?
|
||||
var encoding: JSONEncoding = JSONEncoding()
|
||||
|
||||
public init(parameters: Any?) {
|
||||
self.bodyParameters = parameters
|
||||
}
|
||||
|
||||
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
|
||||
return try encoding.encode(urlRequest, withJSONObject: bodyParameters)
|
||||
}
|
||||
}
|
||||
|
||||
// Store manager to retain its reference
|
||||
private var managerStore = SynchronizedDictionary<String, Alamofire.SessionManager>()
|
||||
|
||||
open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
required public init(method: String, URLString: String, parameters: [String : Any]?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody, headers: headers)
|
||||
}
|
||||
|
||||
@@ -77,7 +90,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
configuration (e.g. to override the cache policy).
|
||||
*/
|
||||
open func makeRequest(manager: SessionManager, method: HTTPMethod, encoding: ParameterEncoding, headers: [String:String]) -> DataRequest {
|
||||
return manager.request(URLString, method: method, parameters: parameters, encoding: encoding, headers: headers)
|
||||
return manager.request(URLString, method: method, parameters: parameters as? Parameters, encoding: encoding, headers: headers)
|
||||
}
|
||||
|
||||
override open func execute(_ completion: @escaping (_ response: Response<T>?, _ error: ErrorResponse?) -> Void) {
|
||||
@@ -86,15 +99,17 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
let manager = createSessionManager()
|
||||
managerStore[managerId] = manager
|
||||
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncoding() : URLEncoding()
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncodingWrapper(parameters: parameters) : URLEncoding()
|
||||
|
||||
let xMethod = Alamofire.HTTPMethod(rawValue: method)
|
||||
let fileKeys = parameters == nil ? [] : parameters!.filter { $1 is NSURL }
|
||||
|
||||
let param = parameters as? Parameters
|
||||
let fileKeys = param == nil ? [] : param!.filter { $1 is NSURL }
|
||||
.map { $0.0 }
|
||||
|
||||
if fileKeys.count > 0 {
|
||||
manager.upload(multipartFormData: { mpForm in
|
||||
for (k, v) in self.parameters! {
|
||||
for (k, v) in param! {
|
||||
switch v {
|
||||
case let fileURL as URL:
|
||||
if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) {
|
||||
|
||||
+2
-2
@@ -17,11 +17,11 @@ open class EnumTest: JSONEncodable {
|
||||
}
|
||||
public enum EnumInteger: Int32 {
|
||||
case _1 = 1
|
||||
case numberminus1 = -1
|
||||
case number1 = -1
|
||||
}
|
||||
public enum EnumNumber: Double {
|
||||
case _11 = 1.1
|
||||
case numberminus12 = -1.2
|
||||
case number12 = -1.2
|
||||
}
|
||||
public var enumString: EnumString?
|
||||
public var enumInteger: EnumInteger?
|
||||
|
||||
+30
@@ -93,6 +93,36 @@ class UserAPITests: XCTestCase {
|
||||
}, onCompleted: nil, onDisposed: nil).addDisposableTo(disposeBag)
|
||||
self.waitForExpectations(timeout: testTimeout, handler: nil)
|
||||
}
|
||||
|
||||
func testCreateUserWithArray() {
|
||||
let expectation = self.expectation(description: "testCreateUserWithArray")
|
||||
let newUser = User()
|
||||
newUser.email = "test@test.com"
|
||||
newUser.firstName = "Test"
|
||||
newUser.lastName = "Tester"
|
||||
newUser.id = 1000
|
||||
newUser.password = "test!"
|
||||
newUser.phone = "867-5309"
|
||||
newUser.username = "test@test.com"
|
||||
newUser.userStatus = 0
|
||||
|
||||
let newUser2 = User()
|
||||
newUser2.email = "test2@test.com"
|
||||
newUser2.firstName = "Test2"
|
||||
newUser2.lastName = "Tester2"
|
||||
newUser2.id = 1001
|
||||
newUser2.password = "test2!"
|
||||
newUser2.phone = "867-5302"
|
||||
newUser2.username = "test2@test.com"
|
||||
newUser2.userStatus = 0
|
||||
|
||||
_ = UserAPI.createUsersWithArrayInput(body: [newUser, newUser2]).subscribe(onNext: {
|
||||
expectation.fulfill()
|
||||
}, onError: { _ in
|
||||
XCTFail("error creating users")
|
||||
})
|
||||
self.waitForExpectations(timeout: testTimeout, handler: nil)
|
||||
}
|
||||
|
||||
func test2GetUser() {
|
||||
let expectation = self.expectation(description: "testGetUser")
|
||||
|
||||
+2
-2
@@ -32,7 +32,7 @@ open class APIBase {
|
||||
open class RequestBuilder<T> {
|
||||
var credential: URLCredential?
|
||||
var headers: [String:String]
|
||||
let parameters: [String:Any]?
|
||||
let parameters: Any?
|
||||
let isBody: Bool
|
||||
let method: String
|
||||
let URLString: String
|
||||
@@ -40,7 +40,7 @@ open class RequestBuilder<T> {
|
||||
/// Optional block to obtain a reference to the request's progress instance when available.
|
||||
public var onProgressReady: ((Progress) -> ())?
|
||||
|
||||
required public init(method: String, URLString: String, parameters: [String:Any]?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String:String] = [:]) {
|
||||
self.method = method
|
||||
self.URLString = URLString
|
||||
self.parameters = parameters
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// AnotherFakeAPI.swift
|
||||
//
|
||||
// Generated by swagger-codegen
|
||||
// https://github.com/swagger-api/swagger-codegen
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Alamofire
|
||||
|
||||
|
||||
open class AnotherFakeAPI: APIBase {
|
||||
/**
|
||||
To test special tags
|
||||
- parameter body: (body) client model
|
||||
- parameter completion: completion handler to receive the data and the error objects
|
||||
*/
|
||||
open class func testSpecialTags(body: Client, completion: @escaping ((_ data: Client?, _ error: ErrorResponse?) -> Void)) {
|
||||
testSpecialTagsWithRequestBuilder(body: body).execute { (response, error) -> Void in
|
||||
completion(response?.body, error)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
To test special tags
|
||||
- PATCH /another-fake/dummy
|
||||
- To test special tags
|
||||
|
||||
- examples: [{contentType=application/json, example={
|
||||
"client" : "client"
|
||||
}}]
|
||||
- parameter body: (body) client model
|
||||
- returns: RequestBuilder<Client>
|
||||
*/
|
||||
open class func testSpecialTagsWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/another-fake/dummy"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
|
||||
|
||||
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true)
|
||||
}
|
||||
|
||||
}
|
||||
+7
-7
@@ -32,7 +32,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterBooleanSerializeWithRequestBuilder(body: OuterBoolean? = nil) -> RequestBuilder<OuterBoolean> {
|
||||
let path = "/fake/outer/boolean"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -67,7 +67,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterCompositeSerializeWithRequestBuilder(body: OuterComposite? = nil) -> RequestBuilder<OuterComposite> {
|
||||
let path = "/fake/outer/composite"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -98,7 +98,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterNumberSerializeWithRequestBuilder(body: OuterNumber? = nil) -> RequestBuilder<OuterNumber> {
|
||||
let path = "/fake/outer/number"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -129,7 +129,7 @@ open class FakeAPI: APIBase {
|
||||
open class func fakeOuterStringSerializeWithRequestBuilder(body: OuterString? = nil) -> RequestBuilder<OuterString> {
|
||||
let path = "/fake/outer/string"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body?.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body?.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -164,7 +164,7 @@ open class FakeAPI: APIBase {
|
||||
open class func testClientModelWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/fake"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -307,7 +307,7 @@ open class FakeAPI: APIBase {
|
||||
*/
|
||||
public enum EnumQueryInteger_testEnumParameters: Int32 {
|
||||
case _1 = 1
|
||||
case numberminus2 = -2
|
||||
case number2 = -2
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -315,7 +315,7 @@ open class FakeAPI: APIBase {
|
||||
*/
|
||||
public enum EnumQueryDouble_testEnumParameters: Double {
|
||||
case _11 = 1.1
|
||||
case numberminus12 = -1.2
|
||||
case number12 = -1.2
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
//
|
||||
// FakeClassnameTags123API.swift
|
||||
//
|
||||
// Generated by swagger-codegen
|
||||
// https://github.com/swagger-api/swagger-codegen
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Alamofire
|
||||
|
||||
|
||||
open class FakeClassnameTags123API: APIBase {
|
||||
/**
|
||||
To test class name in snake case
|
||||
- parameter body: (body) client model
|
||||
- parameter completion: completion handler to receive the data and the error objects
|
||||
*/
|
||||
open class func testClassname(body: Client, completion: @escaping ((_ data: Client?, _ error: ErrorResponse?) -> Void)) {
|
||||
testClassnameWithRequestBuilder(body: body).execute { (response, error) -> Void in
|
||||
completion(response?.body, error)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
To test class name in snake case
|
||||
- PATCH /fake_classname_test
|
||||
- API Key:
|
||||
- type: apiKey api_key_query (QUERY)
|
||||
- name: api_key_query
|
||||
- examples: [{contentType=application/json, example={
|
||||
"client" : "client"
|
||||
}}]
|
||||
- parameter body: (body) client model
|
||||
- returns: RequestBuilder<Client>
|
||||
*/
|
||||
open class func testClassnameWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
|
||||
let path = "/fake_classname_test"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
let requestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
|
||||
|
||||
return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true)
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -35,7 +35,7 @@ open class PetAPI: APIBase {
|
||||
open class func addPetWithRequestBuilder(body: Pet) -> RequestBuilder<Void> {
|
||||
let path = "/pet"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -448,7 +448,7 @@ open class PetAPI: APIBase {
|
||||
open class func updatePetWithRequestBuilder(body: Pet) -> RequestBuilder<Void> {
|
||||
let path = "/pet"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+1
-1
@@ -194,7 +194,7 @@ open class StoreAPI: APIBase {
|
||||
open class func placeOrderWithRequestBuilder(body: Order) -> RequestBuilder<Order> {
|
||||
let path = "/store/order"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+4
-4
@@ -33,7 +33,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUserWithRequestBuilder(body: User) -> RequestBuilder<Void> {
|
||||
let path = "/user"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -65,7 +65,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUsersWithArrayInputWithRequestBuilder(body: [User]) -> RequestBuilder<Void> {
|
||||
let path = "/user/createWithArray"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -97,7 +97,7 @@ open class UserAPI: APIBase {
|
||||
open class func createUsersWithListInputWithRequestBuilder(body: [User]) -> RequestBuilder<Void> {
|
||||
let path = "/user/createWithList"
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
@@ -308,7 +308,7 @@ open class UserAPI: APIBase {
|
||||
var path = "/user/{username}"
|
||||
path = path.replacingOccurrences(of: "{username}", with: "\(username)", options: .literal, range: nil)
|
||||
let URLString = PetstoreClientAPI.basePath + path
|
||||
let parameters = body.encodeToJSON() as? [String:AnyObject]
|
||||
let parameters = body.encodeToJSON()
|
||||
|
||||
let url = NSURLComponents(string: URLString)
|
||||
|
||||
|
||||
+20
-5
@@ -43,11 +43,24 @@ private struct SynchronizedDictionary<K: Hashable, V> {
|
||||
|
||||
}
|
||||
|
||||
class JSONEncodingWrapper: ParameterEncoding {
|
||||
var bodyParameters: Any?
|
||||
var encoding: JSONEncoding = JSONEncoding()
|
||||
|
||||
public init(parameters: Any?) {
|
||||
self.bodyParameters = parameters
|
||||
}
|
||||
|
||||
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
|
||||
return try encoding.encode(urlRequest, withJSONObject: bodyParameters)
|
||||
}
|
||||
}
|
||||
|
||||
// Store manager to retain its reference
|
||||
private var managerStore = SynchronizedDictionary<String, Alamofire.SessionManager>()
|
||||
|
||||
open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
required public init(method: String, URLString: String, parameters: [String : Any]?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
required public init(method: String, URLString: String, parameters: Any?, isBody: Bool, headers: [String : String] = [:]) {
|
||||
super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody, headers: headers)
|
||||
}
|
||||
|
||||
@@ -77,7 +90,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
configuration (e.g. to override the cache policy).
|
||||
*/
|
||||
open func makeRequest(manager: SessionManager, method: HTTPMethod, encoding: ParameterEncoding, headers: [String:String]) -> DataRequest {
|
||||
return manager.request(URLString, method: method, parameters: parameters, encoding: encoding, headers: headers)
|
||||
return manager.request(URLString, method: method, parameters: parameters as? Parameters, encoding: encoding, headers: headers)
|
||||
}
|
||||
|
||||
override open func execute(_ completion: @escaping (_ response: Response<T>?, _ error: ErrorResponse?) -> Void) {
|
||||
@@ -86,15 +99,17 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
let manager = createSessionManager()
|
||||
managerStore[managerId] = manager
|
||||
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncoding() : URLEncoding()
|
||||
let encoding:ParameterEncoding = isBody ? JSONEncodingWrapper(parameters: parameters) : URLEncoding()
|
||||
|
||||
let xMethod = Alamofire.HTTPMethod(rawValue: method)
|
||||
let fileKeys = parameters == nil ? [] : parameters!.filter { $1 is NSURL }
|
||||
|
||||
let param = parameters as? Parameters
|
||||
let fileKeys = param == nil ? [] : param!.filter { $1 is NSURL }
|
||||
.map { $0.0 }
|
||||
|
||||
if fileKeys.count > 0 {
|
||||
manager.upload(multipartFormData: { mpForm in
|
||||
for (k, v) in self.parameters! {
|
||||
for (k, v) in param! {
|
||||
switch v {
|
||||
case let fileURL as URL:
|
||||
if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) {
|
||||
|
||||
+2
-2
@@ -17,11 +17,11 @@ open class EnumTest: JSONEncodable {
|
||||
}
|
||||
public enum EnumInteger: Int32 {
|
||||
case _1 = 1
|
||||
case numberminus1 = -1
|
||||
case number1 = -1
|
||||
}
|
||||
public enum EnumNumber: Double {
|
||||
case _11 = 1.1
|
||||
case numberminus12 = -1.2
|
||||
case number12 = -1.2
|
||||
}
|
||||
public var enumString: EnumString?
|
||||
public var enumInteger: EnumInteger?
|
||||
|
||||
Reference in New Issue
Block a user