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
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
|
|
}
|
|
}
|