Advertisement
Guest User

Untitled

a guest
Apr 30th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.71 KB | None | 0 0
  1. // Metoda sprawdza czy odpowiedź serwera zawiera pole 'message' - jeśli tak oznacza to, że coś poszło nie tak,
  2.     // w przypadku jego braku dostajemy dane o które prosiliśmy
  3.     private func handleResponse(responseResult result: Alamofire.Result<AnyObject, NSError>,
  4.                                                completion: (ServerResultType<JSON>)->(),
  5.                                                successAction: ((JSON) -> ())? = nil) {
  6.    
  7.         switch result {
  8.         case .Success(let val):
  9.             let json = JSON(val)
  10.             if let message = json.dictionary?["message"]?.string {
  11.                 completion(.Error(err: ServerError.ErrorWithMessage(text: message)))
  12.             } else {
  13.                 successAction?(json)
  14.                 completion(.Success(obj: json))
  15.             }
  16.            
  17.         case .Failure(let err):
  18.             completion(.Error(err: err))
  19.         }
  20.    
  21.     }
  22.    
  23.     // Jeśli udało się zalogować metoda zwróci ServerResultType.Success z obiektem nil,
  24.     // w przeciwnym wypadku obiekt to String z odpowiedzią serwera (powód błędu logowania)
  25.     public func login(username: String, password: String, completion: (ServerResultType<JSON>)->()) {
  26.         request(.GET, url: url(fromRouter: Router.User(child: .Current))).responseJSON {
  27.             self.handleResponse(responseResult: $0.result, completion: completion) { json in
  28.                 self.username = username
  29.                 self.password = password
  30.                 self.defaults.setObject(username, forKey: UserDefaultsKeys.LoggedUserUsername.rawValue)
  31.                 self.defaults.setObject(password, forKey: UserDefaultsKeys.LoggedUserPassword.rawValue)
  32.             }
  33.         }
  34.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement