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

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
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
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
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 pennyTestServerMessage
  13. case pennyTestStatusCode
  14. case pennyTestRequested
  15. case pennyTestPresentedOnce
  16. case accessTokenRegTime
  17. case accessTokenExpTime
  18. case yearlyLimit
  19. case userId = "com.gmeremit.username"
  20. case senderId
  21. case fullName = "com.gmeremit.fullName"
  22. case firstName
  23. case middleName
  24. case lastName
  25. case nickName = "com.gmeremit.nickName"
  26. case dateOfBirth = "date_of_birth"
  27. case email = "com.gmeremit.email"
  28. case mobileNumber = "com.gmeremit.mobileNumber"
  29. case rewardPoint = "com.gmeremit.rewardPoint"
  30. case walletNumber = "com.gmeremit.walletNumber"
  31. case availableBalance = "com.gmeremit.balance"
  32. case primaryBankName = "com.gmeremit.bankName"
  33. case primaryAccountNumber
  34. case accessCode = "com.gmeremit.accessCode"
  35. case dpUrl = "com.gmeremit.dpUrl"
  36. case kyc = "com.gmeremit.isKYCSubmitted"
  37. case verified = "com.gmeremit.isVerified"
  38. case active
  39. case cmRegistrationId = "cmRegistrationId"
  40. case isReferred = "com.gmeremit.isReferred"
  41. case country
  42. case province
  43. case provinceId
  44. case sourceId = "com.gmeremit.sourceId"
  45. case idType
  46. case idNumber
  47. case countryCode
  48. case countryID
  49. case errorCode
  50. case hasRequestedPennyTest
  51. case isPennyTestPending
  52. case kftcClientId
  53. case message
  54. case id
  55. case data
  56. case isUseBiometricAuth = "com.gmeremit.isUseBiometricAuth"
  57. case remindKFTCTokenDay
  58. case redirectTo
  59. }
  60. enum AppKey: String, KeyProtocol {
  61. case uuid
  62. case firstTimeLanguageIsSet
  63. case criticalUpdate
  64. case currentLanguage
  65. case dateOfDontShowNotification
  66. case dateOfExpireNotification
  67. case isOpenedTokenRenwalAlert
  68. case isOpenedPopupNotification
  69. }
  70. let user = UserDefaultsWrapper<UserKeys>()
  71. let app = UserDefaultsWrapper<AppKey>()
  72. func getFcmToken(completion: @escaping (String?, Error?) -> Void) {
  73. InstanceID.instanceID().instanceID { (result, error) in
  74. completion(result?.token, error)
  75. }
  76. }
  77. }
  78. extension GMEDB {
  79. @discardableResult
  80. func setUser(_ user: User?) -> UserDefaultsWrapper<UserKeys> {
  81. let firstName = user?.firstName ?? ""
  82. let middleName = user?.lastName ?? ""
  83. let lastName = user?.lastName ?? ""
  84. let fullName = firstName + " " + middleName + " " + lastName
  85. self.user
  86. .set(user?.dpUrl, .dpUrl)
  87. .set(user?.walletNumber, .walletNumber)
  88. .set(user?.primaryBankName, .primaryBankName)
  89. self.user
  90. .set(fullName, .fullName)
  91. .set(firstName, .firstName)
  92. .set(lastName, .lastName)
  93. .set(user?.userId, .userId)
  94. .set(user?.nickName, .nickName)
  95. self.user
  96. .set(user?.kyc, .kyc)
  97. .set(user?.pennyTestStatus, .pennyTestStatusCode)
  98. .set(user?.verified, .verified)
  99. self.user
  100. .set(user?.email, .email)
  101. .set(user?.mobileNumber, .mobileNumber)
  102. .set(user?.sourceId, .sourceId)
  103. .set(user?.isReferred, .isReferred)
  104. self.user
  105. .set(user?.idType, .idType)
  106. .set(user?.idNumber, .idNumber)
  107. .set(user?.country, .country)
  108. .set(user?.countryCode, .countryCode)
  109. self.user
  110. .set(user?.primaryAccountNumber, .primaryAccountNumber)
  111. .set(user?.senderId, .senderId)
  112. .set(user?.yearlyLimit, .yearlyLimit)
  113. .set(user?.dateOfBirth, .dateOfBirth)
  114. self.user
  115. .set(user?.rewardPoint, .rewardPoint)
  116. .set(user?.availableBalance, .availableBalance)
  117. .set(user?.accessTokenRegTime, .accessTokenRegTime)
  118. .set(user?.accessTokenExpTime, .accessTokenExpTime)
  119. .set(user?.redirectTo, .redirectTo)
  120. return self.user
  121. }
  122. }