Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Metoda sprawdza czy odpowiedź serwera zawiera pole 'message' - jeśli tak oznacza to, że coś poszło nie tak,
- // w przypadku jego braku dostajemy dane o które prosiliśmy
- private func handleResponse(responseResult result: Alamofire.Result<AnyObject, NSError>,
- completion: (ServerResultType<JSON>)->(),
- successAction: ((JSON) -> ())? = nil) {
- switch result {
- case .Success(let val):
- let json = JSON(val)
- if let message = json.dictionary?["message"]?.string {
- completion(.Error(err: ServerError.ErrorWithMessage(text: message)))
- } else {
- successAction?(json)
- completion(.Success(obj: json))
- }
- case .Failure(let err):
- completion(.Error(err: err))
- }
- }
- // Jeśli udało się zalogować metoda zwróci ServerResultType.Success z obiektem nil,
- // w przeciwnym wypadku obiekt to String z odpowiedzią serwera (powód błędu logowania)
- public func login(username: String, password: String, completion: (ServerResultType<JSON>)->()) {
- request(.GET, url: url(fromRouter: Router.User(child: .Current))).responseJSON {
- self.handleResponse(responseResult: $0.result, completion: completion) { json in
- self.username = username
- self.password = password
- self.defaults.setObject(username, forKey: UserDefaultsKeys.LoggedUserUsername.rawValue)
- self.defaults.setObject(password, forKey: UserDefaultsKeys.LoggedUserPassword.rawValue)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement