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.
85 lines
2.9 KiB
85 lines
2.9 KiB
//
|
|
// ReferralCodeViewModel.swift
|
|
// GMERemittance
|
|
//
|
|
// Created by Sujal on 4/20/18.
|
|
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class ReferralCodeViewModel: ModelExtension {
|
|
|
|
var referralCodeValidated: Box<Bool?> = Box(nil)
|
|
|
|
var referralConnectionTimeOut: Box<Bool?> = Box(nil)
|
|
|
|
var validReferralCode: String!
|
|
|
|
|
|
let user_id = UserDefaults.standard.object(forKey: "com.gmeremit.username") as? String
|
|
|
|
var param: [String: String] = [String: String]()
|
|
|
|
/**
|
|
Verification of referral code
|
|
- parameter referralCode: referral code
|
|
*/
|
|
func validateReferralCode(referralCode: String) {
|
|
|
|
let spaceStrippedCode = referralCode.removeSpacesTrailingPreceding()
|
|
|
|
if isValidReferralCode(code: spaceStrippedCode) {
|
|
|
|
if !Reachability.isConnectedToNetwork() {
|
|
self.internetConnection.value = false
|
|
} else {
|
|
param["referralCode"] = spaceStrippedCode
|
|
|
|
RestApiMananger.sharedInstance.validateReferralCode(param: param) { result in
|
|
switch result {
|
|
case let .success(referralCodeJson):
|
|
self.validReferralCode = referralCodeJson["referralCode"].rawString()
|
|
self.referralCodeValidated.value = true
|
|
case .failure(_):
|
|
self.setErrorMessage(message: "Invalid referral code")
|
|
self.referralCodeValidated.value = false
|
|
case .updateAccessCode:
|
|
RestApiMananger.sharedInstance.updateAccessCode(userId: self.user_id!, password: self.getLoginPassword()) {
|
|
result in
|
|
if result != "Error"{
|
|
let uuid = RestApiMananger.sharedInstance.getUUID()
|
|
UserDefaults.standard.set((result + ":" + uuid).toBase64(), forKey: "com.gmeremit.accessCode")
|
|
self.validateReferralCode(referralCode: referralCode)
|
|
}
|
|
}
|
|
case .logOutUser():
|
|
self.anotherLogin.value = true
|
|
case .timeOut:
|
|
self.referralConnectionTimeOut.value = false
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
self.setErrorMessage(message: "Empty referral Code")
|
|
self.referralCodeValidated.value = false
|
|
}
|
|
}
|
|
|
|
/**
|
|
Validation for empty
|
|
*/
|
|
func isValidReferralCode(code: String) -> Bool {
|
|
if code.isBlank || code.isEmpty {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
/**
|
|
- returns: valid referral code
|
|
*/
|
|
func getValidReferralCode() -> String {
|
|
return validReferralCode
|
|
}
|
|
}
|