You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
2.7 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // RegisterViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 10/09/2018.
  6. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. class RegisterViewController: UIViewController {
  10. // MARK: IBOutlets
  11. @IBOutlet weak var emailTextField: UITextField!
  12. @IBOutlet weak var passwordTextField: UITextField!
  13. @IBOutlet weak var confirmPasswordTextfield: UITextField!
  14. @IBOutlet weak var dobTextField: UITextField!
  15. // MARK: Properties
  16. let datePicker = UIDatePicker()
  17. var presenter: RegisterModuleInterface?
  18. // MARK: VC's Life cycle
  19. override func viewDidLoad() {
  20. super.viewDidLoad()
  21. self.setup()
  22. }
  23. override func viewWillAppear(_ animated: Bool) {
  24. super.viewWillAppear(animated)
  25. self.setupPicturedNavBar()
  26. }
  27. override func viewWillDisappear(_ animated: Bool) {
  28. super.viewWillDisappear(animated)
  29. self.navigationItem.title = ""
  30. }
  31. // MARK: IBActions
  32. @IBAction func login(_ sender: UIButton) {
  33. self.presenter?.login()
  34. }
  35. private func setupDatePicker() {
  36. self.datePicker.datePickerMode = .date
  37. self.dobTextField.inputView = datePicker
  38. datePicker.maximumDate = Date()
  39. self.datePicker.addTarget(self, action: #selector(handleDatePicker(sender:)), for: .valueChanged)
  40. }
  41. @objc private func handleDatePicker(sender: UIDatePicker) {
  42. let dateFormatter = DateFormatter()
  43. dateFormatter.dateFormat = "yyyy-MM-dd"
  44. self.dobTextField.text = dateFormatter.string(from: sender.date)
  45. }
  46. @IBAction func register(_ sender: UIButton) {
  47. let email = self.emailTextField.text!
  48. let password = self.passwordTextField.text!
  49. let dob = self.dobTextField.text!
  50. let confirmPassword = self.confirmPasswordTextfield.text!
  51. let model = RegisterRequestModel()
  52. model.username = email
  53. model.password = password
  54. model.confirmPassword = confirmPassword
  55. model.dob = dob
  56. self.presenter?.register(model: model)
  57. }
  58. // MARK: Other Functions
  59. private func setup() {
  60. // all setup should be done here
  61. self.setupPicturedNavBar()
  62. self.setupDatePicker()
  63. }
  64. }
  65. // MARK: RegisterViewInterface
  66. extension RegisterViewController: RegisterViewInterface {
  67. func showLoading() {
  68. self.showProgressHud()
  69. }
  70. func hideLoading() {
  71. self.hideProgressHud()
  72. }
  73. func show(error: String) {
  74. self.alert(message: error)
  75. }
  76. func show(message: String) {
  77. self.alertWithOk(message: message, title: "Success", okTitle: "Ok") {
  78. self.presenter?.login()
  79. }
  80. }
  81. }