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.
|
|
// // FillSignUpCodeViewModel.swift // GMERemittance // // Created by Sujal on 12/11/17. // Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved. //
import Foundation
class FillCodeViewModel: ModelExtension { private let codeLength: Int = 4 var userId: String? var signupCode: String? var recoveryType: String? var authenticated: Box<Bool?> = Box(nil) var fillCodeConnectionTimeOut: Box<Bool?> = Box(nil) var user_id = UserDefaults.standard.object(forKey: "com.gmeremit.username") as? String }
extension FillCodeViewModel { /**
To set the code for sign up - parameter code: secure code */ func setCode(code: String) { signupCode = code } /**
To set the user id for sign up - parameter userId: userId */ func setUserId(userId: String) { self.userId = userId } /**
To set the recoveryType for sign up - parameter recoveryType: password or device */ func setRecoveryType(recoveryType: String) { self.recoveryType = recoveryType } /**
To check length of code for sign up - returns: Bool */ func checkCodeLength() -> isValid { guard signupCode?.count == codeLength else { return .InValid("Code is incomplete") } return .Valid } }
extension FillCodeViewModel { /**
Api request fot code validation */ func authenticate() { if !Reachability.isConnectedToNetwork() { self.internetConnection.value = false } else { RestApiMananger.sharedInstance.authenticateUser(code: signupCode!, userId: self.userId!) { result in switch result { case .success(_): self.authenticated.value = true case let .failure(errorJSON): self.setErrorMessage(message: errorJSON["message"].stringValue) self.authenticated.value = false case .updateAccessCode: return case .logOutUser(): return case .timeOut: self.fillCodeConnectionTimeOut.value = false } } } } /**
Api request to change password */ func enablePasswordChange() { if !Reachability.isConnectedToNetwork() { self.internetConnection.value = false } else { RestApiMananger.sharedInstance.reAuthenticateUser(code: signupCode!, userId: self.userId!) { result in switch result { case .success(_): self.authenticated.value = true case let .failure(errorJSON): self.setErrorMessage(message: errorJSON["message"].stringValue) self.authenticated.value = false case .updateAccessCode: return case .logOutUser(): return case .timeOut: self.fillCodeConnectionTimeOut.value = false } } } } /**
Api request for signup code */ func requestCode() { if !Reachability.isConnectedToNetwork() { self.internetConnection.value = false } else { RestApiMananger.sharedInstance.requestAnotherCode(type: self.recoveryType!, userId: self.userId!) { result in switch result { case .success(_): self.authenticated.value = nil case let .failure(errorJSON): self.setErrorMessage(message: errorJSON["message"].stringValue) self.authenticated.value = nil case .updateAccessCode: return case .logOutUser(): return case .timeOut: self.fillCodeConnectionTimeOut.value = false } } } } }
|