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.
 
 
 
 

107 lines
3.8 KiB

//
// ChangePasswordViewController.swift
// GMERemittance
//
// Created by Sujal on 12/20/17.
// Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
import UIKit
class ResetPasswordViewController: UIViewController {
private var resetpasswordviewmodel = ResetPasswordViewModel()
private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
@IBOutlet weak var textFieldNewPassword: UITextField!
@IBOutlet weak var textFieldConfirmPassword: UITextField!
@IBAction func gotoPreviousView(_ sender: Any) {
}
@IBAction func changePassword(_ sender: Any) {
if resetpasswordviewmodel.isBlank(text: textFieldNewPassword.text!) {
self.popUpMessageError(value: 11, message: "Password cannot be empty")
} else if (!resetpasswordviewmodel.isValidPasswordLength(password: textFieldNewPassword.text!)) {
self.popUpMessageError(value: 11, message: "Password is too short")
} else if (!resetpasswordviewmodel.passwordsMatch(password: textFieldNewPassword.text!, confirmpassword: textFieldConfirmPassword.text!)) {
self.popUpMessageError(value: 11, message: "Passwords do not match")
} else {
disableUserInteractions()
showActivityIndicator(activityIndicator: activityIndicator)
resetpasswordviewmodel.setUpdatedCredentials(userId: UserDefaults.standard.object(forKey: "com.gmeremit.username") as! String, password: textFieldNewPassword.text!)
resetpasswordviewmodel.changePassword()
}
}
override func viewDidLoad() {
super.viewDidLoad()
setUpNavBar(id: 100, title: "")
self.hideKeyboardWhenTappedAround()
textFieldNewPassword.delegate = self
textFieldConfirmPassword.delegate = self
resetpasswordviewmodel.internetConnection.value = nil
resetpasswordviewmodel.resetPasswordConnectionTimeOut.value = nil
/**
connection timeout
*/
resetpasswordviewmodel.resetPasswordConnectionTimeOut.bind { [unowned self] in
guard $0 != nil else {
return
}
self.enableUserInteractions()
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
self.popUpMessage(value: 20)
}
/**
Internet check
*/
resetpasswordviewmodel.internetConnection.bind { [unowned self] in
guard $0 != nil else {
return
}
self.enableUserInteractions()
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
self.popUpMessage(value: 15)
}
/**
Update password change request
*/
resetpasswordviewmodel.passwordChanged.bind { [unowned self] in
guard $0 != nil else {
return
}
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
self.enableUserInteractions()
guard $0! else {
self.popUpMessageError(value: 10, message: self.resetpasswordviewmodel.getErrorMessage())
return
}
self.performSegue(withIdentifier: "loginRecoveryMode", sender: nil)
}
}
}
extension ResetPasswordViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == textFieldNewPassword {
textFieldConfirmPassword.becomeFirstResponder()
} else if textField == textFieldConfirmPassword {
textFieldConfirmPassword.resignFirstResponder()
}
return true
}
}