TF-2384 Create TwakeCore in ios folder to handle network jmap request to server

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit d8a330b987860f133b7e56b4aa67669c9d3c8f20)
This commit is contained in:
dab246
2023-12-24 19:31:03 +07:00
committed by Dat H. Pham
parent 0cd0c24a56
commit edcc30808c
14 changed files with 375 additions and 4 deletions
@@ -0,0 +1,30 @@
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)"))
}
}
}
}
@@ -0,0 +1,5 @@
import Foundation
enum AuthenticationType: String, Codable {
case basic, oidc, none
}
@@ -0,0 +1,14 @@
import Foundation
struct TokenOidc: Codable {
let token: String
let tokenId: String
let expiredTime: String?
let refreshToken: String
}
extension TokenOidc {
func getAuthorization() -> String {
return "Bearer \(token)"
}
}