// // ForgetPasswordViewModel.swift // GMERemittance // // Created by Sujal on 12/19/17. // Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved. // import Foundation class ForgetPasswordViewModel: ModelExtension { private var userId: String? private var userDOB: String? let user_id = UserDefaults.standard.object(forKey: "com.gmeremit.username") as? String let password = UserDefaults.standard.object(forKey: "com.gmeremit.password") as? String var requestAcknowledged: Box = Box(nil) var forgetPasswordConnectionTimeOut: Box = Box(nil) var isVerifiedUser: Bool? } extension ForgetPasswordViewModel { /** To set user id - parameter userId: userId */ func setUserId(userId: String) { self.userId = userId } /** To set user DOB - parameter userDOB: date */ func setUserDOB(userDOB: String) { self.userDOB = userDOB } /** Api request for verification of user account */ func checkUserVerification() { if !Reachability.isConnectedToNetwork() { self.internetConnection.value = false } else { RestApiMananger.sharedInstance.isVerifiedUser(userId: self.userId!) { result in switch result { case let .success(authJSON): self.isVerifiedUser = authJSON["verified"].boolValue UserDefaults.standard.set(authJSON["userId"].stringValue, forKey: "com.gmeremit.username") self.requestAcknowledged.value = true case let .failure(errorJSON): self.setErrorMessage(message: errorJSON["message"].stringValue) self.requestAcknowledged.value = false case .updateAccessCode: return case .logOutUser(): return case .timeOut: self.forgetPasswordConnectionTimeOut.value = false } } } } /** Api request to submit DOB of user */ func submitDOB() { if !Reachability.isConnectedToNetwork() { self.internetConnection.value = false } else { RestApiMananger.sharedInstance.submitUserDOB(userId: self.userId!, userDOB: self.userDOB!) { result in switch result { case .success(_): self.requestAcknowledged.value = true case let .failure(errorJSON): self.setErrorMessage(message: errorJSON["message"].stringValue) self.requestAcknowledged.value = false case .updateAccessCode: return case .logOutUser(): return case .timeOut: self.forgetPasswordConnectionTimeOut.value = false } } } } }