From eee404e6bb288ab15a9df6df2fe6fd7efa6e878a Mon Sep 17 00:00:00 2001 From: nixzhu Date: Thu, 19 Mar 2015 22:18:46 +0800 Subject: [PATCH] registerMobile --- Yep/Services/YepService.swift | 26 +++++++++++++++++ .../RegisterPickMobileViewController.swift | 28 +++++++++++++++++-- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/Yep/Services/YepService.swift b/Yep/Services/YepService.swift index 47d8aad5..834e130a 100644 --- a/Yep/Services/YepService.swift +++ b/Yep/Services/YepService.swift @@ -55,6 +55,32 @@ func validateMobile(mobile: String, withAreaCode areaCode: String, #failureHandl } +func registerMobile(mobile: String, withAreaCode areaCode: String, #nickname: String, #failureHandler: ((Resource<(Bool)>, Reason, NSData?) -> ())?, #completion: Bool -> Void) { + let requestParameters = [ + "mobile": mobile, + "phone_code": areaCode, + "nickname": nickname, + ] + + let parse: JSONDictionary -> Bool? = { data in + if let state = data["state"] as? String { + if state == "blocked" { + return true + } + } + + return false + } + + let resource = jsonResource(path: "/api/v1/registration/create", method: .POST, requestParameters: requestParameters, parse: parse) + + if let failureHandler = failureHandler { + apiRequest({_ in}, baseURL, resource, failureHandler, completion) + } else { + apiRequest({_ in}, baseURL, resource, defaultFailureHandler, completion) + } +} + // MARK: Login func sendVerifyCode(ofMobile mobile: String, withAreaCode areaCode: String, #failureHandler: ((Resource, Reason, NSData?) -> ())?, #completion: Bool -> Void) { diff --git a/Yep/ViewControllers/Register/RegisterPickMobileViewController.swift b/Yep/ViewControllers/Register/RegisterPickMobileViewController.swift index 9d6b9071..95975b6d 100644 --- a/Yep/ViewControllers/Register/RegisterPickMobileViewController.swift +++ b/Yep/ViewControllers/Register/RegisterPickMobileViewController.swift @@ -68,8 +68,32 @@ class RegisterPickMobileViewController: UIViewController { if available { println("ValidateMobile: available") - dispatch_async(dispatch_get_main_queue(), { () -> Void in - self.performSegueWithIdentifier("showRegisterVerifyMobile", sender: ["mobile" : mobile, "areaCode": areaCode]) + registerMobile(mobile, withAreaCode: areaCode, nickname: YepUserDefaults.nickname()!, failureHandler: { (resource, reason, data) in + defaultFailureHandler(forResource: resource, withFailureReason: reason, data) + + if let errorMessage = errorMessageInData(data) { + dispatch_async(dispatch_get_main_queue(), { () -> Void in + YepAlert.alertSorry(message: errorMessage, inViewController: self, withDismissAction: { () -> Void in + mobileNumberTextField.becomeFirstResponder() + }) + }) + } + + }, completion: { created in + if created { + dispatch_async(dispatch_get_main_queue(), { () -> Void in + self.performSegueWithIdentifier("showRegisterVerifyMobile", sender: ["mobile" : mobile, "areaCode": areaCode]) + }) + + } else { + dispatch_async(dispatch_get_main_queue(), { () -> Void in + self.nextButton.enabled = false + + YepAlert.alertSorry(message: "registerMobile failed", inViewController: self, withDismissAction: { () -> Void in + mobileNumberTextField.becomeFirstResponder() + }) + }) + } }) } else {