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.

60 lines
1.2 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 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. }
  20. // MARK: Home interactor input interface
  21. extension HomeInteractor: HomeInteractorInput {
  22. func fetchUserInfo() {
  23. GMEDB.shared.getFcmToken { (token, error) in
  24. self.service.fetchUserInfo(
  25. token: token ?? "",
  26. success: { user in
  27. self.output?.show(model: user)
  28. },
  29. failure: {
  30. let error = $0 as NSError
  31. if error.code == AppConstants.emergencyLogoutErrorCode {
  32. self.output?.show(panicError: error)
  33. return
  34. }
  35. self.output?.show(error: error)
  36. })
  37. }
  38. }
  39. func fetchHotLines() {
  40. service.fetchHotLines(
  41. success: {
  42. self.output?.setHotLine(with: $0)
  43. },
  44. failure: {
  45. self.output?.show(error: $0)
  46. }
  47. )
  48. }
  49. }