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.
173 lines
5.4 KiB
173 lines
5.4 KiB
//
|
|
// Database.swift
|
|
// GME Remit
|
|
//
|
|
// Created by InKwon James Kim on 17/07/2019.
|
|
// Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import FirebaseInstanceID
|
|
|
|
class GMEDB {
|
|
static let shared = GMEDB()
|
|
|
|
enum UserKeys: String, KeyProtocol {
|
|
|
|
case accessTokenRegTime
|
|
case accessTokenExpTime
|
|
|
|
case yearlyLimit
|
|
case userId = "com.gmeremit.username"
|
|
case senderId
|
|
case fullName = "com.gmeremit.fullName"
|
|
case firstName
|
|
case middleName
|
|
case lastName
|
|
case nickName = "com.gmeremit.nickName"
|
|
case dateOfBirth = "date_of_birth"
|
|
|
|
case email = "com.gmeremit.email"
|
|
case mobileNumber = "com.gmeremit.mobileNumber"
|
|
case rewardPoint = "com.gmeremit.rewardPoint"
|
|
case walletNumber = "com.gmeremit.walletNumber"
|
|
case availableBalance = "com.gmeremit.balance"
|
|
case primaryBankName = "com.gmeremit.bankName"
|
|
case primaryAccountNumber
|
|
case accessCode = "com.gmeremit.accessCode"
|
|
case dpUrl = "com.gmeremit.dpUrl"
|
|
case kyc = "com.gmeremit.isKYCSubmitted"
|
|
case isExistingUser
|
|
case verified = "com.gmeremit.isVerified"
|
|
case active
|
|
case cmRegistrationId = "cmRegistrationId"
|
|
case isReferred = "com.gmeremit.isReferred"
|
|
case country
|
|
case province
|
|
case provinceId
|
|
case sourceId = "com.gmeremit.sourceId"
|
|
case idType
|
|
case idNumber
|
|
case countryCode
|
|
case countryID
|
|
case errorCode
|
|
case hasRequestedPennyTest
|
|
case isPennyTestPending
|
|
case kftcClientId
|
|
case message
|
|
case id
|
|
case data
|
|
case isUseBiometricAuth = "com.gmeremit.isUseBiometricAuth"
|
|
case remindKFTCTokenDay
|
|
case redirectTo
|
|
case agreeYn
|
|
case referralCode
|
|
case hasUpdatedDefaultCredentials
|
|
case hasVerifiedOTP
|
|
case expirtDate
|
|
case idStatus
|
|
case notificationCount
|
|
case showInviteCode
|
|
case rewardPoints
|
|
case profileImage
|
|
}
|
|
|
|
enum AppKey: String, KeyProtocol {
|
|
case ngrokHost
|
|
case uuid
|
|
case firstTimeLanguageIsSet
|
|
case criticalUpdate
|
|
case currentLanguage
|
|
|
|
case dateOfDontShowNotification
|
|
case dateOfExpireNotification
|
|
|
|
case isOpenedTokenRenwalAlert
|
|
case isOpenedPopupNotification
|
|
case openCount
|
|
}
|
|
|
|
enum UserRegisterKey: String, KeyProtocol {
|
|
case mobileNumber
|
|
case referenceId
|
|
case generatedUserId
|
|
}
|
|
|
|
let user = UserDefaultsWrapper<UserKeys>()
|
|
let app = UserDefaultsWrapper<AppKey>()
|
|
let register = UserDefaultsWrapper<UserRegisterKey>()
|
|
let generatedUserId = UserDefaultsWrapper<UserRegisterKey>()
|
|
|
|
func getFcmToken(completion: @escaping (String?, Error?) -> Void) {
|
|
InstanceID.instanceID().instanceID { (result, error) in
|
|
completion(result?.token, error)
|
|
}
|
|
}
|
|
}
|
|
|
|
extension GMEDB {
|
|
@discardableResult
|
|
func setUser(_ user: User?) -> UserDefaultsWrapper<UserKeys> {
|
|
let firstName = user?.firstName ?? ""
|
|
let middleName = user?.lastName ?? ""
|
|
let lastName = user?.lastName ?? ""
|
|
let fullName = firstName + " " + middleName + " " + lastName
|
|
|
|
self.user
|
|
.set(user?.dpUrl, .dpUrl)
|
|
.set(user?.walletNumber, .walletNumber)
|
|
.set(user?.primaryBankName, .primaryBankName)
|
|
.set(user?.selfieDocPath, .profileImage)
|
|
|
|
self.user
|
|
.set(fullName, .fullName)
|
|
.set(firstName, .firstName)
|
|
.set(lastName, .lastName)
|
|
.set(user?.userId, .userId)
|
|
.set(user?.nickName, .nickName)
|
|
|
|
self.user
|
|
.set(user?.kyc, .kyc)
|
|
.set(user?.verified, .verified)
|
|
.set(user?.hasUpdatedDefaultCredentials, .hasUpdatedDefaultCredentials)
|
|
.set(user?.notificationCount, .notificationCount)
|
|
.set(user?.hasVerifiedOTP, .hasVerifiedOTP)
|
|
.set(user?.isExistingUser, .isExistingUser)
|
|
.set(user?.showInviteCode, .showInviteCode)
|
|
|
|
self.user
|
|
.set(user?.email, .email)
|
|
.set(user?.mobileNumber, .mobileNumber)
|
|
.set(user?.sourceId, .sourceId)
|
|
.set(user?.isReferred, .isReferred)
|
|
|
|
self.user
|
|
.set(user?.idType, .idType)
|
|
.set(user?.idNumber, .idNumber)
|
|
.set(user?.country, .country)
|
|
.set(user?.countryCode, .countryCode)
|
|
|
|
self.user
|
|
.set(user?.primaryAccountNumber, .primaryAccountNumber)
|
|
.set(user?.senderId, .senderId)
|
|
.set(user?.yearlyLimit, .yearlyLimit)
|
|
.set(user?.dateOfBirth, .dateOfBirth)
|
|
|
|
self.user
|
|
.set(user?.rewardPoint, .rewardPoint)
|
|
.set(user?.availableBalance, .availableBalance)
|
|
.set(user?.accessTokenRegTime, .accessTokenRegTime)
|
|
.set(user?.accessTokenExpTime, .accessTokenExpTime)
|
|
.set(user?.redirectTo, .redirectTo)
|
|
.set(user?.rewardPoint, .rewardPoints)
|
|
|
|
self.user
|
|
.set(user?.agreeYn, .agreeYn)
|
|
.set(user?.referralCode, .referralCode)
|
|
|
|
self.user
|
|
.set(user?.expiryDate, .expirtDate)
|
|
.set(user?.idStaus, .idStatus)
|
|
|
|
return self.user
|
|
}
|
|
}
|