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.

93 lines
2.9 KiB

6 years ago
  1. //
  2. // ForgetPasswordViewModel.swift
  3. // GMERemittance
  4. //
  5. // Created by Sujal on 12/19/17.
  6. // Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. class ForgetPasswordViewModel: ModelExtension {
  10. private var userId: String?
  11. private var userDOB: String?
  12. let user_id = UserDefaults.standard.object(forKey: "com.gmeremit.username") as? String
  13. let password = UserDefaults.standard.object(forKey: "com.gmeremit.password") as? String
  14. var requestAcknowledged: Box<Bool?> = Box(nil)
  15. var forgetPasswordConnectionTimeOut: Box<Bool?> = Box(nil)
  16. var isVerifiedUser: Bool?
  17. }
  18. extension ForgetPasswordViewModel {
  19. /**
  20. To set user id
  21. - parameter userId: userId
  22. */
  23. func setUserId(userId: String) {
  24. self.userId = userId
  25. }
  26. /**
  27. To set user DOB
  28. - parameter userDOB: date
  29. */
  30. func setUserDOB(userDOB: String) {
  31. self.userDOB = userDOB
  32. }
  33. /**
  34. Api request for verification of user account
  35. */
  36. func checkUserVerification() {
  37. if !Reachability.isConnectedToNetwork() {
  38. self.internetConnection.value = false
  39. } else {
  40. RestApiMananger.sharedInstance.isVerifiedUser(userId: self.userId!) { result in
  41. switch result {
  42. case let .success(authJSON):
  43. self.isVerifiedUser = authJSON["verified"].boolValue
  44. UserDefaults.standard.set(authJSON["userId"].stringValue, forKey: "com.gmeremit.username")
  45. self.requestAcknowledged.value = true
  46. case let .failure(errorJSON):
  47. self.setErrorMessage(message: errorJSON["message"].stringValue)
  48. self.requestAcknowledged.value = false
  49. case .updateAccessCode:
  50. return
  51. case .logOutUser():
  52. return
  53. case .timeOut:
  54. self.forgetPasswordConnectionTimeOut.value = false
  55. }
  56. }
  57. }
  58. }
  59. /**
  60. Api request to submit DOB of user
  61. */
  62. func submitDOB() {
  63. if !Reachability.isConnectedToNetwork() {
  64. self.internetConnection.value = false
  65. } else {
  66. RestApiMananger.sharedInstance.submitUserDOB(userId: self.userId!, userDOB: self.userDOB!) { result in
  67. switch result {
  68. case .success(_):
  69. self.requestAcknowledged.value = true
  70. case let .failure(errorJSON):
  71. self.setErrorMessage(message: errorJSON["message"].stringValue)
  72. self.requestAcknowledged.value = false
  73. case .updateAccessCode:
  74. return
  75. case .logOutUser():
  76. return
  77. case .timeOut:
  78. self.forgetPasswordConnectionTimeOut.value = false
  79. }
  80. }
  81. }
  82. }
  83. }