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(responseValue rawJson: AnyObject, successAction: ((contents:JSON) -> ())? = nil) -> ServerResultType<JSON> {
- let json = JSON(rawJson)
- if let message = json.dictionary?["message"]?.string {
- return .Error(err: ServerError.ErrorWithMessage(text: message))
- }
- successAction?(contents: json)
- return .Success(obj: json)
- }
- // 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 {
- switch $0.result {
- case .Success(let value):
- completion(self.handleResponse(responseValue: value) { _ in
- self.username = username
- self.password = password
- self.defaults.setObject(username, forKey: UserDefaultsKeys.LoggedUserUsername.rawValue)
- self.defaults.setObject(password, forKey: UserDefaultsKeys.LoggedUserPassword.rawValue)
- })
- case .Failure(let error):
- completion(.Error(err: error))
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement