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.
|
|
// // ChangePasswordViewModel.swift // GMERemittance // // Created by Sujal on 2/18/18. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. //
import Foundation
class ChangePasswordViewModel: SignUpViewModel { var passwordChanged: Box<Bool?> = Box(nil) var oldPassword: String! var newPassword: String! var confirmPassword: String! var passwordConnectionTimeOut: Box<Bool?> = Box(nil) }
extension ChangePasswordViewModel { /**
to update old password */ func updateOldPassword(inputString: String) { self.oldPassword = inputString } /**
to update new password */ func updateNewPassword(inputString: String) { self.newPassword = inputString } /**
to confrim new password */ func updateConfirmPassword(inputString: String) { self.confirmPassword = inputString } /**
to validate empty textfield */ func validateFields() -> isValid { guard oldPassword != nil && newPassword != nil && confirmPassword != nil else { return .InValid("Please fill all the fields") } guard isValidPasswordLength(password: oldPassword) && isValidPasswordLength(password: newPassword) && isValidPasswordLength(password: confirmPassword) else { return .InValid("Password lengths do not match the minimum criteria") } guard confirmPassword == newPassword else { return .InValid("Passwords do not match") } return .Valid } /**
Api request to change password */ func requestPasswordChanges() { let userId: String = UserDefaults.standard.object(forKey: "com.gmeremit.username") as! String if !Reachability.isConnectedToNetwork() { self.internetConnection.value = false } else { RestApiMananger.sharedInstance.changePassword(userId: userId, currentPassword: oldPassword, newPassword: newPassword) { result in switch result { case .success(_): UserDefaults.standard.set(self.newPassword.toBase64(), forKey: "com.gmeremit.password") self.passwordChanged.value = true case let .failure(errorJSON): self.setErrorMessage(message: errorJSON["message"].stringValue) self.passwordChanged.value = false case .updateAccessCode: RestApiMananger.sharedInstance.updateAccessCode(userId: userId, password: self.password!) { result in if result != "Error"{ let uuid = RestApiMananger.sharedInstance.getUUID() UserDefaults.standard.set((result + ":" + uuid).toBase64(), forKey: "com.gmeremit.accessCode") self.requestPasswordChanges() } } case .logOutUser(): RestApiMananger.sharedInstance.cancelExistingNetworkCalls() self.anotherLogin.value = true case .timeOut: self.passwordConnectionTimeOut.value = false } } } } }
|