Guest User

Untitled

a guest
Jan 15th, 2018
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. class Dynamic<T> {
  2. typealias Listener = (T) -> Void
  3. var listener: Listener?
  4.  
  5. func bind(listener: Listener?) {
  6. self.listener = listener
  7. }
  8.  
  9. func bindAndFire(listener: Listener?) {
  10. self.listener = listener
  11. listener?(value)
  12. }
  13.  
  14. var value: T {
  15. didSet {
  16. listener?(value)
  17. }
  18. }
  19.  
  20. init(_ v: T) {
  21. value = v
  22. }}
  23.  
  24. class SignUpViewController: UIViewController {
  25.  
  26. // UI Outlets
  27. @IBOutlet weak var emailLoginTextField: FloatLabelTextField!
  28. @IBOutlet weak var passwordLoginTextField: FloatLabelTextField!
  29.  
  30. var viewModel = AuthenticationViewModel()
  31.  
  32.  
  33. override func viewDidLoad() {
  34. super.viewDidLoad()
  35.  
  36. viewModel.user.email.bind{
  37.  
  38. self.emailLoginTextField.text = $0
  39.  
  40. }
  41.  
  42. }}
  43.  
  44. class AuthenticationViewModel{
  45.  
  46. let defaults = UserDefaults.standard
  47.  
  48. let serviceManager = ServiceManager()
  49.  
  50. var user = User()
  51. func signupUser(email : String?, password: String?){
  52.  
  53.  
  54. let parameters : [String:String] = ["email":emailField, "password": password!, "system": "ios"]
  55.  
  56. serviceManager.initWithPOSTConnection(server: Utitlites.getServerName(), parameters: parameters, methodName: "/api/user/register", completion: { (responseData , errorMessage) -> Void in
  57.  
  58. let json = (responseData as AnyObject) as! JSON
  59.  
  60. print(json)
  61.  
  62. if ErrorHandling.handleErrorMessage(responseData: responseData).0 == true {
  63.  
  64. self.defaults.set("userId", forKey: json["user"]["id"].stringValue)
  65.  
  66. //self.userId.value = json["user"]["id"].stringValue
  67.  
  68. self.user = User(json: json)
  69.  
  70.  
  71.  
  72.  
  73. }
  74.  
  75. })
  76.  
  77. }}
  78.  
  79. class User{
  80.  
  81. var id = Dynamic("")
  82. var name = Dynamic("")
  83. var email = Dynamic("")
  84.  
  85. init(){
  86.  
  87. }
  88.  
  89. init(json: JSON){
  90.  
  91. id.value = json["user"]["id"].stringValue
  92. email.value = json["user"]["email"].stringValue
  93.  
  94. }}
  95.  
  96. viewModel.user.email.bind{
  97.  
  98. self.emailLoginTextField.text = $0
  99.  
  100. }
  101.  
  102. var id: Dynamic<String> = Dynamic("")
  103. var name: Dynamic<String> = Dynamic("")
  104. var email: Dynamic<String> = Dynamic("")
  105.  
  106. private var user = User() {
  107. didSet {
  108. id = user.id
  109. name = user.name
  110. email = user.email
  111. }
  112. }
  113.  
  114. viewModel.email.bind{
  115. self.emailLoginTextField.text = $0
  116. }
Add Comment
Please, Sign In to add comment