Skip to content

Commit f97b837

Browse files
committed
Merge pull request #3 from ikesyo/enable-request-cancelation
[APIKit] Return NSURLSessionDataTask from `sendRequest` for cancelation
2 parents 54d9e98 + 1326c09 commit f97b837

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

APIKit/APIKit.swift

+6-2
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public class API {
7676
}
7777

7878
// send request and build response object
79-
public class func sendRequest<T: Request>(request: T, handler: (Result<T.Response, NSError>) -> Void = {r in}) {
79+
public class func sendRequest<T: Request>(request: T, handler: (Result<T.Response, NSError>) -> Void = {r in}) -> NSURLSessionDataTask? {
8080
let session = URLSession()
8181
let mainQueue = dispatch_get_main_queue()
8282

@@ -108,11 +108,15 @@ public class API {
108108
dispatch_async(mainQueue, { handler(mappedResponse) })
109109
}
110110

111-
task.resume()
111+
task.resume()
112+
113+
return task
112114
} else {
113115
let userInfo = [NSLocalizedDescriptionKey: "failed to build request."]
114116
let error = NSError(domain: APIKitErrorDomain, code: 0, userInfo: userInfo)
115117
dispatch_async(mainQueue, { handler(failure(error)) })
118+
119+
return nil
116120
}
117121
}
118122
}

0 commit comments

Comments
 (0)