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.

173 lines
5.4 KiB

5 years ago
5 years ago
5 years ago
3 years ago
2 years ago
1 year ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
1 year ago
2 years ago
3 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 isExistingUser
  34. case verified = "com.gmeremit.isVerified"
  35. case active
  36. case cmRegistrationId = "cmRegistrationId"
  37. case isReferred = "com.gmeremit.isReferred"
  38. case country
  39. case province
  40. case provinceId
  41. case sourceId = "com.gmeremit.sourceId"
  42. case idType
  43. case idNumber
  44. case countryCode
  45. case countryID
  46. case errorCode
  47. case hasRequestedPennyTest
  48. case isPennyTestPending
  49. case kftcClientId
  50. case message
  51. case id
  52. case data
  53. case isUseBiometricAuth = "com.gmeremit.isUseBiometricAuth"
  54. case remindKFTCTokenDay
  55. case redirectTo
  56. case agreeYn
  57. case referralCode
  58. case hasUpdatedDefaultCredentials
  59. case hasVerifiedOTP
  60. case expirtDate
  61. case idStatus
  62. case notificationCount
  63. case showInviteCode
  64. case rewardPoints
  65. case profileImage
  66. }
  67. enum AppKey: String, KeyProtocol {
  68. case ngrokHost
  69. case uuid
  70. case firstTimeLanguageIsSet
  71. case criticalUpdate
  72. case currentLanguage
  73. case dateOfDontShowNotification
  74. case dateOfExpireNotification
  75. case isOpenedTokenRenwalAlert
  76. case isOpenedPopupNotification
  77. case openCount
  78. }
  79. enum UserRegisterKey: String, KeyProtocol {
  80. case mobileNumber
  81. case referenceId
  82. case generatedUserId
  83. }
  84. let user = UserDefaultsWrapper<UserKeys>()
  85. let app = UserDefaultsWrapper<AppKey>()
  86. let register = UserDefaultsWrapper<UserRegisterKey>()
  87. let generatedUserId = UserDefaultsWrapper<UserRegisterKey>()
  88. func getFcmToken(completion: @escaping (String?, Error?) -> Void) {
  89. InstanceID.instanceID().instanceID { (result, error) in
  90. completion(result?.token, error)
  91. }
  92. }
  93. }
  94. extension GMEDB {
  95. @discardableResult
  96. func setUser(_ user: User?) -> UserDefaultsWrapper<UserKeys> {
  97. let firstName = user?.firstName ?? ""
  98. let middleName = user?.lastName ?? ""
  99. let lastName = user?.lastName ?? ""
  100. let fullName = firstName + " " + middleName + " " + lastName
  101. self.user
  102. .set(user?.dpUrl, .dpUrl)
  103. .set(user?.walletNumber, .walletNumber)
  104. .set(user?.primaryBankName, .primaryBankName)
  105. .set(user?.selfieDocPath, .profileImage)
  106. self.user
  107. .set(fullName, .fullName)
  108. .set(firstName, .firstName)
  109. .set(lastName, .lastName)
  110. .set(user?.userId, .userId)
  111. .set(user?.nickName, .nickName)
  112. self.user
  113. .set(user?.kyc, .kyc)
  114. .set(user?.verified, .verified)
  115. .set(user?.hasUpdatedDefaultCredentials, .hasUpdatedDefaultCredentials)
  116. .set(user?.notificationCount, .notificationCount)
  117. .set(user?.hasVerifiedOTP, .hasVerifiedOTP)
  118. .set(user?.isExistingUser, .isExistingUser)
  119. .set(user?.showInviteCode, .showInviteCode)
  120. self.user
  121. .set(user?.email, .email)
  122. .set(user?.mobileNumber, .mobileNumber)
  123. .set(user?.sourceId, .sourceId)
  124. .set(user?.isReferred, .isReferred)
  125. self.user
  126. .set(user?.idType, .idType)
  127. .set(user?.idNumber, .idNumber)
  128. .set(user?.country, .country)
  129. .set(user?.countryCode, .countryCode)
  130. self.user
  131. .set(user?.primaryAccountNumber, .primaryAccountNumber)
  132. .set(user?.senderId, .senderId)
  133. .set(user?.yearlyLimit, .yearlyLimit)
  134. .set(user?.dateOfBirth, .dateOfBirth)
  135. self.user
  136. .set(user?.rewardPoint, .rewardPoint)
  137. .set(user?.availableBalance, .availableBalance)
  138. .set(user?.accessTokenRegTime, .accessTokenRegTime)
  139. .set(user?.accessTokenExpTime, .accessTokenExpTime)
  140. .set(user?.redirectTo, .redirectTo)
  141. .set(user?.rewardPoint, .rewardPoints)
  142. self.user
  143. .set(user?.agreeYn, .agreeYn)
  144. .set(user?.referralCode, .referralCode)
  145. self.user
  146. .set(user?.expiryDate, .expirtDate)
  147. .set(user?.idStaus, .idStatus)
  148. return self.user
  149. }
  150. }