Skip to content

Instantly share code, notes, and snippets.

@to4iki
Last active September 27, 2017 15:29
Show Gist options
  • Save to4iki/042de671f647bdec9a9aef5b581e4ba3 to your computer and use it in GitHub Desktop.
Save to4iki/042de671f647bdec9a9aef5b581e4ba3 to your computer and use it in GitHub Desktop.
Extend APIKit.Session
import APIKit
import RxSwift
extension Session: ReactiveCompatible {}
extension Reactive where Base: Session {
public static func send<T: Request>(_ request: T) -> Single<T.Response> {
return Single<T.Response>.create { observer in
let task = Session.send(request, callbackQueue: .main) { result in
switch result {
case .success(let value):
observer(.success(value))
case .failure(let error):
observer(.error(error))
}
}
return Disposables.create {
task?.cancel()
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment