forked from loafle/openapi-generator-original
[Swift] Handle Void responses
This commit is contained in:
parent
c1f3c51427
commit
3a457c6a7e
@ -89,6 +89,26 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
let validatedRequest = request.validate()
|
||||
|
||||
switch T.self {
|
||||
case is Void.Type:
|
||||
validatedRequest.responseData(completionHandler: { (voidResponse) in
|
||||
cleanupRequest()
|
||||
|
||||
if voidResponse.result.isFailure {
|
||||
completion(
|
||||
response: nil,
|
||||
error: ErrorResponse.Error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.result.error!)
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
completion(
|
||||
response: Response(
|
||||
response: voidResponse.response!,
|
||||
body: nil
|
||||
),
|
||||
error: nil
|
||||
)
|
||||
})
|
||||
case is NSData.Type:
|
||||
validatedRequest.responseData(completionHandler: { (dataResponse) in
|
||||
cleanupRequest()
|
||||
|
@ -17,15 +17,15 @@ public enum ErrorResponse : ErrorType {
|
||||
public class Response<T> {
|
||||
public let statusCode: Int
|
||||
public let header: [String: String]
|
||||
public let body: T
|
||||
public let body: T?
|
||||
|
||||
public init(statusCode: Int, header: [String: String], body: T) {
|
||||
public init(statusCode: Int, header: [String: String], body: T?) {
|
||||
self.statusCode = statusCode
|
||||
self.header = header
|
||||
self.body = body
|
||||
}
|
||||
|
||||
public convenience init(response: NSHTTPURLResponse, body: T) {
|
||||
public convenience init(response: NSHTTPURLResponse, body: T?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String:String]()
|
||||
for (key, value) in rawHeader {
|
||||
|
@ -89,6 +89,26 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
let validatedRequest = request.validate()
|
||||
|
||||
switch T.self {
|
||||
case is Void.Type:
|
||||
validatedRequest.responseData(completionHandler: { (voidResponse) in
|
||||
cleanupRequest()
|
||||
|
||||
if voidResponse.result.isFailure {
|
||||
completion(
|
||||
response: nil,
|
||||
error: ErrorResponse.Error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.result.error!)
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
completion(
|
||||
response: Response(
|
||||
response: voidResponse.response!,
|
||||
body: nil
|
||||
),
|
||||
error: nil
|
||||
)
|
||||
})
|
||||
case is NSData.Type:
|
||||
validatedRequest.responseData(completionHandler: { (dataResponse) in
|
||||
cleanupRequest()
|
||||
|
@ -17,15 +17,15 @@ public enum ErrorResponse : ErrorType {
|
||||
public class Response<T> {
|
||||
public let statusCode: Int
|
||||
public let header: [String: String]
|
||||
public let body: T
|
||||
public let body: T?
|
||||
|
||||
public init(statusCode: Int, header: [String: String], body: T) {
|
||||
public init(statusCode: Int, header: [String: String], body: T?) {
|
||||
self.statusCode = statusCode
|
||||
self.header = header
|
||||
self.body = body
|
||||
}
|
||||
|
||||
public convenience init(response: NSHTTPURLResponse, body: T) {
|
||||
public convenience init(response: NSHTTPURLResponse, body: T?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String:String]()
|
||||
for (key, value) in rawHeader {
|
||||
|
@ -72,19 +72,12 @@ class PetAPITests: XCTestCase {
|
||||
let expectation = self.expectationWithDescription("testDeletePet")
|
||||
|
||||
PetAPI.deletePet(petId: 1000) { (error) in
|
||||
// The server gives us no data back so Alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = error else {
|
||||
guard error == nil else {
|
||||
XCTFail("error deleting pet")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error deleting pet")
|
||||
}
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
|
@ -74,19 +74,12 @@ class StoreAPITests: XCTestCase {
|
||||
let expectation = self.expectationWithDescription("testDeleteOrder")
|
||||
|
||||
StoreAPI.deleteOrder(orderId: "1000") { (error) in
|
||||
// The server gives us no data back so Alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = error else {
|
||||
guard error == nil else {
|
||||
XCTFail("error deleting order")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error deleting order")
|
||||
}
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
|
@ -50,19 +50,12 @@ class UserAPITests: XCTestCase {
|
||||
let expectation = self.expectationWithDescription("testLogout")
|
||||
|
||||
UserAPI.logoutUser { (error) in
|
||||
// The server gives us no data back so Alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = error else {
|
||||
guard error == nil else {
|
||||
XCTFail("error logging out")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error logging out")
|
||||
}
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
@ -82,19 +75,12 @@ class UserAPITests: XCTestCase {
|
||||
newUser.userStatus = 0
|
||||
|
||||
UserAPI.createUser(body: newUser) { (error) in
|
||||
// The server gives us no data back so Alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = error else {
|
||||
guard error == nil else {
|
||||
XCTFail("error creating user")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error creating user")
|
||||
}
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
@ -128,19 +114,12 @@ class UserAPITests: XCTestCase {
|
||||
let expectation = self.expectationWithDescription("testDeleteUser")
|
||||
|
||||
UserAPI.deleteUser(username: "test@test.com") { (error) in
|
||||
// The server gives us no data back so Alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = error else {
|
||||
guard error == nil else {
|
||||
XCTFail("error deleting user")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error deleting user")
|
||||
}
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
|
@ -89,6 +89,26 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
|
||||
let validatedRequest = request.validate()
|
||||
|
||||
switch T.self {
|
||||
case is Void.Type:
|
||||
validatedRequest.responseData(completionHandler: { (voidResponse) in
|
||||
cleanupRequest()
|
||||
|
||||
if voidResponse.result.isFailure {
|
||||
completion(
|
||||
response: nil,
|
||||
error: ErrorResponse.Error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.result.error!)
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
completion(
|
||||
response: Response(
|
||||
response: voidResponse.response!,
|
||||
body: nil
|
||||
),
|
||||
error: nil
|
||||
)
|
||||
})
|
||||
case is NSData.Type:
|
||||
validatedRequest.responseData(completionHandler: { (dataResponse) in
|
||||
cleanupRequest()
|
||||
|
@ -17,15 +17,15 @@ public enum ErrorResponse : ErrorType {
|
||||
public class Response<T> {
|
||||
public let statusCode: Int
|
||||
public let header: [String: String]
|
||||
public let body: T
|
||||
public let body: T?
|
||||
|
||||
public init(statusCode: Int, header: [String: String], body: T) {
|
||||
public init(statusCode: Int, header: [String: String], body: T?) {
|
||||
self.statusCode = statusCode
|
||||
self.header = header
|
||||
self.body = body
|
||||
}
|
||||
|
||||
public convenience init(response: NSHTTPURLResponse, body: T) {
|
||||
public convenience init(response: NSHTTPURLResponse, body: T?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String:String]()
|
||||
for (key, value) in rawHeader {
|
||||
|
@ -61,24 +61,8 @@ class PetAPITests: XCTestCase {
|
||||
|
||||
func test3DeletePet() {
|
||||
let expectation = self.expectationWithDescription("testDeletePet")
|
||||
PetAPI.deletePet(petId: 1000).always {
|
||||
// expectation.fulfill()
|
||||
}.always {
|
||||
// Noop for now
|
||||
}.error { errorType -> Void in
|
||||
// The server gives us no data back so alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = errorType as? ErrorResponse else {
|
||||
XCTFail("error logging out")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error logging out")
|
||||
}
|
||||
PetAPI.deletePet(petId: 1000).then {
|
||||
expectation.fulfill()
|
||||
}
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
}
|
||||
|
@ -62,23 +62,7 @@ class StoreAPITests: XCTestCase {
|
||||
func test3DeleteOrder() {
|
||||
let expectation = self.expectationWithDescription("testDeleteOrder")
|
||||
StoreAPI.deleteOrder(orderId: "1000").then {
|
||||
expectation.fulfill()
|
||||
}.always {
|
||||
// Noop for now
|
||||
}.error { errorType -> Void in
|
||||
// The server gives us no data back so alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = errorType as? ErrorResponse else {
|
||||
XCTFail("error deleting order")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error deleting order")
|
||||
}
|
||||
expectation.fulfill()
|
||||
}
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
}
|
||||
|
@ -52,23 +52,7 @@ class UserAPITests: XCTestCase {
|
||||
func testLogout() {
|
||||
let expectation = self.expectationWithDescription("testLogout")
|
||||
UserAPI.logoutUser().then {
|
||||
expectation.fulfill()
|
||||
}.always {
|
||||
// Noop for now
|
||||
}.error { errorType -> Void in
|
||||
// The server gives us no data back so alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = errorType as? ErrorResponse else {
|
||||
XCTFail("error logging out")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error logging out")
|
||||
}
|
||||
expectation.fulfill()
|
||||
}
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
}
|
||||
@ -85,23 +69,7 @@ class UserAPITests: XCTestCase {
|
||||
newUser.username = "test@test.com"
|
||||
newUser.userStatus = 0
|
||||
UserAPI.createUser(body: newUser).then {
|
||||
expectation.fulfill()
|
||||
}.always {
|
||||
// Noop for now
|
||||
}.error { errorType -> Void in
|
||||
// The server gives us no data back so alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = errorType as? ErrorResponse else {
|
||||
XCTFail("error creating user")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error creating user")
|
||||
}
|
||||
expectation.fulfill()
|
||||
}
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
}
|
||||
@ -127,23 +95,7 @@ class UserAPITests: XCTestCase {
|
||||
func test3DeleteUser() {
|
||||
let expectation = self.expectationWithDescription("testDeleteUser")
|
||||
UserAPI.deleteUser(username: "test@test.com").then {
|
||||
expectation.fulfill()
|
||||
}.always {
|
||||
// Noop for now
|
||||
}.error { errorType -> Void in
|
||||
// The server gives us no data back so alamofire parsing fails - at least
|
||||
// verify that is the error we get here
|
||||
guard let error = errorType as? ErrorResponse else {
|
||||
XCTFail("error deleting user")
|
||||
return
|
||||
}
|
||||
|
||||
switch error {
|
||||
case ErrorResponse.Error(200, _, _):
|
||||
expectation.fulfill()
|
||||
default:
|
||||
XCTFail("error deleting user")
|
||||
}
|
||||
expectation.fulfill()
|
||||
}
|
||||
self.waitForExpectationsWithTimeout(testTimeout, handler: nil)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user