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.

97 lines
3.2 KiB

6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // HomeWireframe.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 UIKit
  9. class HomeWireframe {
  10. weak var view: UIViewController!
  11. private lazy var transactionHistoryWireframe: TransactionHistoryWireframeInput = TransactionHistoryWireframe()
  12. private lazy var sendMoneyWireframe: SendMoneyParentWireframeInput = SendMoneyParentWireframe()
  13. private lazy var todaysRateWireframe: ExchangeRatesWireframeInput = ExchangeRatesWireframe()
  14. private lazy var kycWireFrame = KycWireframe()
  15. private lazy var walletStatementWireframe = WalletStatementWireframe()
  16. private lazy var autodebitWireFrame = AutoDebitWireframe()
  17. private lazy var pennyTestWireFrame = PennyTestWireframe()
  18. private lazy var pennyTestSubmitWireFrame = PennyTestSubmitWireframe()
  19. private lazy var appUpdateWireFrame = AppUpdateWireframe()
  20. }
  21. extension HomeWireframe: HomeWireframeInput {
  22. var storyboardName: String {return "Home"}
  23. func getMainView() -> UIViewController {
  24. let service = HomeService()
  25. let interactor = HomeInteractor(service: service)
  26. let presenter = HomePresenter()
  27. let viewController = viewControllerFromStoryboard(of: HomeViewController.self)
  28. viewController.setupTabItem()
  29. viewController.presenter = presenter
  30. interactor.output = presenter
  31. presenter.interactor = interactor
  32. presenter.wireframe = self
  33. presenter.view = viewController
  34. let _ = viewController.view
  35. self.view = viewController
  36. return viewController
  37. }
  38. func openTransactionHistory() {
  39. if let navigation = self.view.navigationController {
  40. self.transactionHistoryWireframe.pushMainView(in: navigation)
  41. }
  42. }
  43. func openSendMoney() {
  44. if let navigation = self.view.navigationController {
  45. self.sendMoneyWireframe.pushMainView(in: navigation)
  46. }
  47. }
  48. func openTrackYourTransfer() {
  49. if let navigation = self.view.navigationController {
  50. self.walletStatementWireframe.openWalletStatement(source: navigation)
  51. }
  52. }
  53. // func openAutoDebit() {
  54. // if let navigation = self.view.navigationController {
  55. // autodebitWireFrame.pushMainView(in: navigation)
  56. // }
  57. // }
  58. func openTodaysRate() {
  59. if let navigation = self.view.navigationController {
  60. self.todaysRateWireframe.pushMainView(in: navigation)
  61. }
  62. }
  63. func openKyc() {
  64. if let navigation = self.view.navigationController {
  65. self.kycWireFrame.pushMainView(in: navigation)
  66. }
  67. }
  68. func showPennyTestSubmit() {
  69. if let navigation = self.view.navigationController {
  70. self.pennyTestSubmitWireFrame.openPennyTestSubmit(with: self.view)
  71. }
  72. }
  73. func showPennyTest() {
  74. self.pennyTestWireFrame.openViewControllerWithNavigation(viewController: pennyTestWireFrame.getMainView(), source: self.view)
  75. }
  76. func showAppUpdate() {
  77. self.appUpdateWireFrame.openMainView(source: self.view)
  78. }
  79. func logOut() {
  80. MainWireframe.logout()
  81. }
  82. }