Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Dynamic<T> {
- typealias Listener = (T) -> Void
- var listener: Listener?
- func bind(listener: Listener?) {
- self.listener = listener
- }
- func bindAndFire(listener: Listener?) {
- self.listener = listener
- listener?(value)
- }
- var value: T {
- didSet {
- listener?(value)
- }
- }
- init(_ v: T) {
- value = v
- }}
- class SignUpViewController: UIViewController {
- // UI Outlets
- @IBOutlet weak var emailLoginTextField: FloatLabelTextField!
- @IBOutlet weak var passwordLoginTextField: FloatLabelTextField!
- var viewModel = AuthenticationViewModel()
- override func viewDidLoad() {
- super.viewDidLoad()
- viewModel.user.email.bind{
- self.emailLoginTextField.text = $0
- }
- }}
- class AuthenticationViewModel{
- let defaults = UserDefaults.standard
- let serviceManager = ServiceManager()
- var user = User()
- func signupUser(email : String?, password: String?){
- let parameters : [String:String] = ["email":emailField, "password": password!, "system": "ios"]
- serviceManager.initWithPOSTConnection(server: Utitlites.getServerName(), parameters: parameters, methodName: "/api/user/register", completion: { (responseData , errorMessage) -> Void in
- let json = (responseData as AnyObject) as! JSON
- print(json)
- if ErrorHandling.handleErrorMessage(responseData: responseData).0 == true {
- self.defaults.set("userId", forKey: json["user"]["id"].stringValue)
- //self.userId.value = json["user"]["id"].stringValue
- self.user = User(json: json)
- }
- })
- }}
- class User{
- var id = Dynamic("")
- var name = Dynamic("")
- var email = Dynamic("")
- init(){
- }
- init(json: JSON){
- id.value = json["user"]["id"].stringValue
- email.value = json["user"]["email"].stringValue
- }}
- viewModel.user.email.bind{
- self.emailLoginTextField.text = $0
- }
- var id: Dynamic<String> = Dynamic("")
- var name: Dynamic<String> = Dynamic("")
- var email: Dynamic<String> = Dynamic("")
- private var user = User() {
- didSet {
- id = user.id
- name = user.name
- email = user.email
- }
- }
- viewModel.email.bind{
- self.emailLoginTextField.text = $0
- }
Add Comment
Please, Sign In to add comment