edcc30808c
Signed-off-by: dab246 <tdvu@linagora.com> (cherry picked from commit d8a330b987860f133b7e56b4aa67669c9d3c8f20)
31 lines
946 B
Swift
31 lines
946 B
Swift
import Foundation
|
|
import Alamofire
|
|
|
|
class AlamofireService {
|
|
static let shared: AlamofireService = AlamofireService()
|
|
|
|
func post<T: Codable>(
|
|
url: String,
|
|
payloadData: Data?,
|
|
headers: HTTPHeaders? = nil,
|
|
onSuccess: @escaping (T) -> Void,
|
|
onFailure: @escaping (Error) -> Void
|
|
) {
|
|
guard let baseUrl = URL(string: url),
|
|
var request = try? URLRequest(url: baseUrl, method: .post, headers: headers) else {
|
|
return onFailure(NetworkExceptions.requestUrlInvalid)
|
|
}
|
|
|
|
request.httpBody = payloadData
|
|
|
|
AF.request(request).responseDecodable(of: T.self) { response in
|
|
switch(response.result) {
|
|
case .success(let data):
|
|
onSuccess(data)
|
|
case .failure(let error):
|
|
onFailure(NetworkExceptions(value: "\(error.localizedDescription)"))
|
|
}
|
|
}
|
|
}
|
|
}
|