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.
138 lines
4.4 KiB
138 lines
4.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.
|
|
//
|
|
|
|
protocol GMEDBKeyProtocol: RawRepresentable, CaseIterable {}
|
|
|
|
class GMEDB {
|
|
static let shared = GMEDB()
|
|
|
|
private var database: UserDefaults {
|
|
return UserDefaults.standard
|
|
}
|
|
|
|
enum UserKeys: String, GMEDBKeyProtocol {
|
|
case pennyTestServerMessage = "pennyTestServerMessage"
|
|
case pennyTestStatusCode = "pennyTestStatusCode"
|
|
case pennyTestRequested = "pennyTestRequested"
|
|
case pennyTestPresentedOnce = "pennyTestPresentedOnce"
|
|
|
|
case accessTokenRegTime = "accessTokenRegTime"
|
|
case accessTokenExpTime = "accessTokenExpTime"
|
|
|
|
case yearlyLimit = "yearlyLimit"
|
|
case userId = "com.gmeremit.username"
|
|
case senderId = "senderId"
|
|
case fullName = "com.gmeremit.fullName"
|
|
case firstName = "firstName"
|
|
case middleName = "middleName"
|
|
case lastName = "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 = "PrimaryAccountNumber"
|
|
case accessCode = "com.gmeremit.accessCode"
|
|
case dpUrl = "com.gmeremit.dpUrl"
|
|
case kyc = "com.gmeremit.isKYCSubmitted"
|
|
case verified = "com.gmeremit.isVerified"
|
|
case active = "active"
|
|
case cmRegistrationId = "cmRegistrationId"
|
|
case isReferred = "com.gmeremit.isReferred"
|
|
case country = "country"
|
|
case province = "province"
|
|
case provinceId = "provinceId"
|
|
case sourceId = "com.gmeremit.sourceId"
|
|
case idType = "idType"
|
|
case idNumber = "idNumber"
|
|
case countryCode = "countryCode"
|
|
case ErrorCode = "ErrorCode"
|
|
case hasRequestedPennyTest = "hasRequestedPennyTest"
|
|
case isPennyTestPending = "isPennyTestPending"
|
|
case kftcClientId = "kftcClientId"
|
|
case Msg = "Msg"
|
|
case Id = "Id"
|
|
case Data = "Data"
|
|
case isUseBiometricAuth = "com.gmeremit.isUseBiometricAuth"
|
|
case remindKFTCTokenDay = "remindKFTCTokenDay"
|
|
}
|
|
|
|
enum AppKey: String, GMEDBKeyProtocol {
|
|
case uuid = "uuid"
|
|
case firstTimeLanguageIsSet = "firstTimeLanguageIsSet"
|
|
case criticalUpdate = "criticalUpdate"
|
|
case currentLanguage = "currentLanguage"
|
|
|
|
case dateOfDontShowNotification = "dateOfDontShowNotification"
|
|
case dateOfExpireNotification = "dateOfExpireNotification"
|
|
|
|
case isOpenedTokenRenwalAlert = "isOpenedTokenRenwalAlert"
|
|
case isOpenedPopupNotification = "isOpenedPopupNotification"
|
|
}
|
|
|
|
let user = UserDefaultsWrapper<UserKeys>()
|
|
let app = UserDefaultsWrapper<AppKey>()
|
|
|
|
}
|
|
|
|
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?.availableBalance, .availableBalance)
|
|
.set(user?.rewardPoint, .rewardPoint)
|
|
.set(user?.verified, .verified)
|
|
.set(user?.kyc, .kyc)
|
|
|
|
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?.pennyTestStatus, .pennyTestStatusCode)
|
|
.set(user?.accessTokenRegTime, .accessTokenRegTime)
|
|
.set(user?.accessTokenExpTime, .accessTokenExpTime)
|
|
|
|
return self.user
|
|
}
|
|
}
|