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.

62 lines
1.6 KiB

6 years ago
  1. //
  2. // HomeInteractor.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 21/09/2018.
  6. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. import FirebaseInstanceID
  10. class HomeInteractor {
  11. // MARK: Properties
  12. weak var output: HomeInteractorOutput?
  13. private let service: HomeServiceType
  14. // MARK: Initialization
  15. init(service: HomeServiceType) {
  16. self.service = service
  17. }
  18. // MARK: Converting entities
  19. private func getFcmToken() -> String? {
  20. let token = InstanceID.instanceID().token()
  21. return token
  22. }
  23. }
  24. // MARK: Home interactor input interface
  25. extension HomeInteractor: HomeInteractorInput {
  26. func fetchUserInfo() {
  27. let userId = Utility.getMyUserName()
  28. var param = ["userId" : userId]
  29. param["uuid"] = Utility.getUUid() ?? ""
  30. param["appVersion"] = Utility.getAppVersion()
  31. param["phoneBrand"] = Utility.getPhoneBrand()
  32. param["phoneOs"] = Utility.getPhoneOs()
  33. param["fcmId"] = self.getFcmToken()
  34. param["osVersion"] = Utility.getOsVersion()
  35. self.service.fetchUserInfo(param: param, success: { user in
  36. self.output?.show(model: user)
  37. }) { error in
  38. if let _error = error as? NSError {
  39. if _error.code == AppConstants.emergencyLogoutErrorCode {
  40. self.output?.show(panicError: error)
  41. }
  42. return
  43. }
  44. self.output?.show(error: error)
  45. }
  46. }
  47. }