Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class RestService {
- private init(){}
- static let shared = RestService()
- var loginData:NSDictionary?
- class func getCertificates() -> [SecCertificate]{
- let url = Bundle.main.url(forResource: "certf", withExtension: "cer")!
- let localCertificate = try! Data(contentsOf: url) as CFData
- guard let certificate = SecCertificateCreateWithData(nil, localCertificate) else {return[]}
- return [certificate]
- }
- let almgr:Alamofire.SessionManager = {
- let certificates = getCertificates()
- let trustPolicy = ServerTrustPolicy.pinCertificates(certificates: certificates, validateCertificateChain: true, validateHost: true)
- let serverTrustPolicies = ["liper":trustPolicy]
- let serverTrustPolicyManager = ServerTrustPolicyManager(policies: serverTrustPolicies)
- let configuration = URLSessionConfiguration.default
- configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders
- let man = Alamofire.SessionManager(configuration: URLSessionConfiguration.default, serverTrustPolicyManager: serverTrustPolicyManager)
- return man
- }()
- func loginRest(login:String, password:String, deviceId:String, completion:@escaping(_ response:AnyObject?, _ _message: String?, _ _success:Bool)->()){
- let params = ["login":login, "password":password, "deviceId":deviceId]
- let urlStr = restServices.REST_MAIN_URL + restServices.REST_LOGIN
- postRestService(urlString: urlStr, params: params as [String:AnyObject]) { (response, message, status) in
- print(response ?? "Error")
- let result = RestService()
- if let data = response as? NSDictionary {
- print(data)
- result.loginData = data
- completion(result, "Success", true)
- } else {
- completion("" as AnyObject?, "Failed", false)
- }
- }
- }
- func postRestService(urlString:String, params: [String:AnyObject], completion: @escaping (_ response:AnyObject?, _ message:String?, _ success:Bool)-> Void){
- alamofireFunction(urlString: urlString, method: .post, parameters: params) { (response, message, success) in
- if response != nil {
- completion(response as AnyObject?, "", true)
- } else {
- completion(nil, "", false)
- }
- }
- }
- func alamofireFunction(urlString:String, method:Alamofire.HTTPMethod, parameters:[String:AnyObject], completion: @escaping (_ response:AnyObject?, _ message:String?, _ success:Bool)-> Void){
- if method == Alamofire.HTTPMethod.post{
- almgr.request(urlString, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: nil).responseJSON {(response:DataResponse<Any>) in
- if response.result.isSuccess{
- completion(response.result.value as AnyObject?, "", true)
- } else {
- completion(nil, "", false)
- }
- }
- } else {
- almgr.request(urlString).responseJSON { (response) in
- if response.result.isSuccess {
- completion(response.result.value as AnyObject?, "", true)
- } else {
- completion(nil, "", false)
- }
- }
- }
- }
- func loginWithRest(){
- let passHashed = "432asadadadas352addasadad"
- RestService.shared.loginRest(login: "patient997@liker.com, password: passHashed, deviceId: "123156") { (result, message, status) in
- if status {
- let loginDetails = result as? RestService
- self.loginDictionary = loginDetails?.loginData
- if self.loginDictionary?["status"] as? String == "error"{
- print("RESTSERVICES, Login Error, (String(describing: self.loginDictionary?["message"] as? String))")
- } else if self.loginDictionary?["status"] as? String == "ok" {
- print("RESTSERVICES, LOGIN SUCCESS")
- } else {
- print("RESTSERVICES (String(describing: self.loginDictionary?["message"] as?String))")
- }
- } else {
- print("RESTSERICES, status is false")
- }
- }
- 2018-01-17 15:43:16.129249+0100 ios-moe[5716:2789249] Task <67AFC6DA-9EFB-47D2-A5B0-FDAA3CC5285A>.<4> HTTP load failed (error code: -999 [1:89])
- 2018-01-17 15:43:16.129275+0100 ios-moe[5716:2789364] Task <67AFC6DA-9EFB-47D2-A5B0-FDAA3CC5285A>.<4> finished with error - code: -999
- Error
- RESTSERICES, status is false
Add Comment
Please, Sign In to add comment