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

//
// 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
}
}