Advertisement
Guest User

Untitled

a guest
Apr 30th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.59 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(responseValue rawJson: AnyObject, successAction: ((contents:JSON) -> ())? = nil) -> ServerResultType<JSON> {
  4.         let json = JSON(rawJson)
  5.         if let message = json.dictionary?["message"]?.string {
  6.             return .Error(err: ServerError.ErrorWithMessage(text: message))
  7.         }
  8.         successAction?(contents: json)
  9.         return .Success(obj: json)
  10.     }
  11.    
  12.     // Jeśli udało się zalogować metoda zwróci ServerResultType.Success z obiektem nil,
  13.     // w przeciwnym wypadku obiekt to String z odpowiedzią serwera (powód błędu logowania)
  14.     public func login(username: String, password: String, completion: (ServerResultType<JSON>)->()) {
  15.         request(.GET, url: url(fromRouter: Router.User(child: .Current))).responseJSON {
  16.            
  17.             switch $0.result {
  18.             case .Success(let value):
  19.                
  20.                 completion(self.handleResponse(responseValue: value) { _ in
  21.                     self.username = username
  22.                     self.password = password
  23.                     self.defaults.setObject(username, forKey: UserDefaultsKeys.LoggedUserUsername.rawValue)
  24.                     self.defaults.setObject(password, forKey: UserDefaultsKeys.LoggedUserPassword.rawValue)
  25.                 })
  26.                
  27.             case .Failure(let error):
  28.                 completion(.Error(err: error))
  29.             }
  30.         }
  31.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement