[+] Encapsulate http request
This commit is contained in:
+14
-1
@@ -25,7 +25,7 @@ class APIs
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Build a URL with the node path and params
|
/// Build a URL with the node path and params
|
||||||
func url(_ node: String, _ params: [String: String]? = [:]) -> URL
|
func createUrl(_ node: String, _ params: [String: String]? = [:]) -> URL
|
||||||
{
|
{
|
||||||
var url = URLComponents(string: baseUrl + node)
|
var url = URLComponents(string: baseUrl + node)
|
||||||
if let params = params
|
if let params = params
|
||||||
@@ -35,3 +35,16 @@ func url(_ node: String, _ params: [String: String]? = [:]) -> URL
|
|||||||
return url!.url!
|
return url!.url!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Send a HTTP request
|
||||||
|
func send<T>(_ api: API<T>, _ params: [String: String]? = [:], _ success: @escaping (String) -> Void, err: @escaping (String) -> Void = { it in })
|
||||||
|
{
|
||||||
|
let url = createUrl(api.loc, params)
|
||||||
|
|
||||||
|
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
|
||||||
|
guard let data = data, let body = String(data: data, encoding: .utf8) else { err("Data cannot be parsed"); return }
|
||||||
|
|
||||||
|
success(body)
|
||||||
|
}
|
||||||
|
|
||||||
|
task.resume()
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user