SHARE
TWEET

Untitled

a guest Jul 18th, 2019 99 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import Foundation
  2. import Alamofire
  3. import SwiftyJSON
  4. import JWTDecode
  5.  
  6. class AuthService {
  7.  
  8.     static let instance = AuthService()
  9.  
  10.     var controller = UIViewController()
  11.  
  12.     let defaults = UserDefaults.standard
  13.  
  14.     var isLoggedIn : Bool {
  15.         get {
  16.             return defaults.bool(forKey: LOGGED_IN_KEY)
  17.         }
  18.         set {
  19.             defaults.set(newValue, forKey: LOGGED_IN_KEY)
  20.         }
  21.     }
  22.  
  23.     var authToken: String {
  24.         get {
  25.             let str = UserDefaults.standard.object(forKey: TOKEN_KEY) as? String
  26.             return str == nil ? "" : str!
  27.         }
  28.         set {
  29.             defaults.set(newValue, forKey: TOKEN_KEY)
  30.         }
  31.     }
  32.  
  33.     var refreshToken: String {
  34.         get {
  35.             return defaults.value(forKey: REFRESH_KEY) as! String
  36.         }
  37.         set {
  38.             defaults.set(newValue, forKey: REFRESH_KEY)
  39.         }
  40.     }
  41.  
  42.     var message: String {
  43.         get {
  44.             return defaults.value(forKey: MESSAGE) as! String
  45.         }
  46.         set {
  47.             defaults.set(newValue, forKey: MESSAGE)
  48.         }
  49.     }
  50.  
  51.     var error: String {
  52.         get {
  53.             let strError = UserDefaults.standard.object(forKey: ERROR) as? String
  54.             return strError == nil ? "" : strError!
  55.             //return defaults.value(forKey: ERROR) as! String
  56.         }
  57.         set {
  58.             defaults.set(newValue, forKey: ERROR)
  59.         }
  60.     }
  61.  
  62.     var errorEmail: String {
  63.         get {
  64.             let strErrorEmail = UserDefaults.standard.object(forKey: ERROREMAIL) as? String
  65.             return strErrorEmail == nil ? "" : strErrorEmail!
  66.         }
  67.         set {
  68.             defaults.set(newValue, forKey: ERROREMAIL)
  69.         }
  70.     }
  71.  
  72.     func loginUser(email: String, password: String, complition: @escaping CompletionHandler) {
  73.  
  74.         let lowerCaseEmail = email.lowercased()
  75.  
  76.         let body: [String: Any] = [
  77.             "email": lowerCaseEmail,
  78.             "password": password
  79.         ]
  80.  
  81.         Alamofire.request(URL_LOGIN, method: .post, parameters: body, encoding: JSONEncoding.default, headers: BEARER_HEADER).responseJSON { (response) in
  82.             if response.result.error == nil {
  83.                 //Using SwiftyJSON
  84.                 guard let data = response.data else { return }
  85.  
  86.                 let json = try! JSON(data: data)
  87.  
  88.                 self.authToken = json["data"]["data"]["token"].stringValue
  89.                 self.refreshToken = json["data"]["data"]["refresh"].stringValue
  90.                 self.message = json["message"].stringValue
  91.                 self.error = json["error"].stringValue
  92.                 print(self.error)
  93.                 self.isLoggedIn = true
  94.                 complition(true)
  95.  
  96.                 let jwt = try? decode(jwt: self.authToken)
  97.                 if jwt != nil {
  98.                     let userInfo = jwt!.body["data"] as? [String: Any]
  99.                     let userInfo2 = userInfo!["user"] as? [String: Any]
  100.                     let country_code = userInfo2!["country_code"]
  101.                     print(country_code!)
  102.                 } else {
  103.                     ErrorAthService.instance.errorUser(email: lowerCaseEmail, password: password)
  104.                 }
  105.  
  106.  
  107.             } else {
  108.                 complition(false)
  109.                 debugPrint(response.result.error as Any)
  110.             }
  111.         }
  112.     }
  113. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top