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.
142 lines
3.9 KiB
142 lines
3.9 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 pennyTestServerMessage
|
|
case pennyTestStatusCode
|
|
case pennyTestRequested
|
|
case pennyTestPresentedOnce
|
|
|
|
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 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
|
|
}
|
|
|
|
enum AppKey: String, KeyProtocol {
|
|
case uuid
|
|
case firstTimeLanguageIsSet
|
|
case criticalUpdate
|
|
case currentLanguage
|
|
|
|
case dateOfDontShowNotification
|
|
case dateOfExpireNotification
|
|
|
|
case isOpenedTokenRenwalAlert
|
|
case isOpenedPopupNotification
|
|
}
|
|
|
|
let user = UserDefaultsWrapper<UserKeys>()
|
|
let app = UserDefaultsWrapper<AppKey>()
|
|
|
|
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)
|
|
|
|
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?.pennyTestStatus, .pennyTestStatusCode)
|
|
.set(user?.verified, .verified)
|
|
|
|
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)
|
|
|
|
return self.user
|
|
}
|
|
}
|