Skip to content

Commit

Permalink
Merge pull request #6 from netceteragroup/http-promise-fix
Browse files Browse the repository at this point in the history
Improvement in HTTPPromise
  • Loading branch information
martinmitrevski committed Dec 5, 2018
2 parents 9b217d7 + 6d24c09 commit 66d6766
Showing 1 changed file with 18 additions and 6 deletions.
24 changes: 18 additions & 6 deletions GirdersSwift/src/main/swift/promise/HTTPPromise.swift
Original file line number Diff line number Diff line change
@@ -1,21 +1,33 @@
import Foundation
import PromiseKit



/// Extension of the standard HTTP with Promises.
public extension HTTP {

func executeRequestAsync<T>(request: Request) -> Promise<Response<T>> {
return Promise { seal in
executeRequest(request: request,
completionHandler: { (result: Result<Response<T>, Error?>) in
switch result {
case .Failure(let error):
seal.reject(error!)
case .Success(let data):
seal.fulfill(data)
}
switch result {
case .Failure(let error):
if error!.isCancelled {
seal.reject(self.canceledErrorForRequest(request))
} else {
seal.reject(error!)
}
case .Success(let data):
seal.fulfill(data)
}
})
}
}

func canceledErrorForRequest(_ request: Request) -> Error {
return NSError(domain: "com.netcetera.GirdersSwift",
code: 01,
userInfo: ["The request was canceled" : request])
}

}

0 comments on commit 66d6766

Please sign in to comment.