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.

153 lines
4.7 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. //
  2. // Database.swift
  3. // GME Remit
  4. //
  5. // Created by InKwon James Kim on 17/07/2019.
  6. // Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import FirebaseInstanceID
  9. class GMEDB {
  10. static let shared = GMEDB()
  11. enum UserKeys: String, KeyProtocol {
  12. case accessTokenRegTime
  13. case accessTokenExpTime
  14. case yearlyLimit
  15. case userId = "com.gmeremit.username"
  16. case senderId
  17. case fullName = "com.gmeremit.fullName"
  18. case firstName
  19. case middleName
  20. case lastName
  21. case nickName = "com.gmeremit.nickName"
  22. case dateOfBirth = "date_of_birth"
  23. case email = "com.gmeremit.email"
  24. case mobileNumber = "com.gmeremit.mobileNumber"
  25. case rewardPoint = "com.gmeremit.rewardPoint"
  26. case walletNumber = "com.gmeremit.walletNumber"
  27. case availableBalance = "com.gmeremit.balance"
  28. case primaryBankName = "com.gmeremit.bankName"
  29. case primaryAccountNumber
  30. case accessCode = "com.gmeremit.accessCode"
  31. case dpUrl = "com.gmeremit.dpUrl"
  32. case kyc = "com.gmeremit.isKYCSubmitted"
  33. case verified = "com.gmeremit.isVerified"
  34. case active
  35. case cmRegistrationId = "cmRegistrationId"
  36. case isReferred = "com.gmeremit.isReferred"
  37. case country
  38. case province
  39. case provinceId
  40. case sourceId = "com.gmeremit.sourceId"
  41. case idType
  42. case idNumber
  43. case countryCode
  44. case countryID
  45. case errorCode
  46. case hasRequestedPennyTest
  47. case isPennyTestPending
  48. case kftcClientId
  49. case message
  50. case id
  51. case data
  52. case isUseBiometricAuth = "com.gmeremit.isUseBiometricAuth"
  53. case remindKFTCTokenDay
  54. case redirectTo
  55. case agreeYn
  56. case referralCode
  57. }
  58. enum AppKey: String, KeyProtocol {
  59. case ngrokHost
  60. case uuid
  61. case firstTimeLanguageIsSet
  62. case criticalUpdate
  63. case currentLanguage
  64. case dateOfDontShowNotification
  65. case dateOfExpireNotification
  66. case isOpenedTokenRenwalAlert
  67. case isOpenedPopupNotification
  68. case openCount
  69. }
  70. enum UserRegisterKey: String, KeyProtocol {
  71. case mobileNumber
  72. case referenceId
  73. case generatedUserId
  74. }
  75. let user = UserDefaultsWrapper<UserKeys>()
  76. let app = UserDefaultsWrapper<AppKey>()
  77. let register = UserDefaultsWrapper<UserRegisterKey>()
  78. let generatedUserId = UserDefaultsWrapper<UserRegisterKey>()
  79. func getFcmToken(completion: @escaping (String?, Error?) -> Void) {
  80. InstanceID.instanceID().instanceID { (result, error) in
  81. completion(result?.token, error)
  82. }
  83. }
  84. }
  85. extension GMEDB {
  86. @discardableResult
  87. func setUser(_ user: User?) -> UserDefaultsWrapper<UserKeys> {
  88. let firstName = user?.firstName ?? ""
  89. let middleName = user?.lastName ?? ""
  90. let lastName = user?.lastName ?? ""
  91. let fullName = firstName + " " + middleName + " " + lastName
  92. self.user
  93. .set(user?.dpUrl, .dpUrl)
  94. .set(user?.walletNumber, .walletNumber)
  95. .set(user?.primaryBankName, .primaryBankName)
  96. self.user
  97. .set(fullName, .fullName)
  98. .set(firstName, .firstName)
  99. .set(lastName, .lastName)
  100. .set(user?.userId, .userId)
  101. .set(user?.nickName, .nickName)
  102. self.user
  103. .set(user?.kyc, .kyc)
  104. .set(user?.verified, .verified)
  105. self.user
  106. .set(user?.email, .email)
  107. .set(user?.mobileNumber, .mobileNumber)
  108. .set(user?.sourceId, .sourceId)
  109. .set(user?.isReferred, .isReferred)
  110. self.user
  111. .set(user?.idType, .idType)
  112. .set(user?.idNumber, .idNumber)
  113. .set(user?.country, .country)
  114. .set(user?.countryCode, .countryCode)
  115. self.user
  116. .set(user?.primaryAccountNumber, .primaryAccountNumber)
  117. .set(user?.senderId, .senderId)
  118. .set(user?.yearlyLimit, .yearlyLimit)
  119. .set(user?.dateOfBirth, .dateOfBirth)
  120. self.user
  121. .set(user?.rewardPoint, .rewardPoint)
  122. .set(user?.availableBalance, .availableBalance)
  123. .set(user?.accessTokenRegTime, .accessTokenRegTime)
  124. .set(user?.accessTokenExpTime, .accessTokenExpTime)
  125. .set(user?.redirectTo, .redirectTo)
  126. self.user
  127. .set(user?.agreeYn, .agreeYn)
  128. .set(user?.referralCode, .referralCode)
  129. return self.user
  130. }
  131. }