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.

53 lines
1.6 KiB

  1. //
  2. // InboundReceiptWireframe.swift
  3. // GME Remit
  4. //
  5. // Created by InKwon James Kim on 2019/11/14.
  6. //Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. class InboundReceiptWireframe {
  10. weak var view: UIViewController!
  11. private var model: TransactionModel?
  12. private var receiptDetailType: ReceiptDetailType?
  13. }
  14. extension InboundReceiptWireframe: InboundReceiptWireframeInput {
  15. var storyboardName: String {return "InboundReceipt"}
  16. func getMainView() -> UIViewController {
  17. let service = InboundReceiptService()
  18. let interactor = InboundReceiptInteractor(service: service, model: model)
  19. let presenter = InboundReceiptPresenter()
  20. let viewController = viewControllerFromStoryboard(of: InboundReceiptViewController.self)
  21. viewController.presenter = presenter
  22. viewController.receiptType = self.receiptDetailType ?? .inBound
  23. interactor.output = presenter
  24. presenter.interactor = interactor
  25. presenter.wireframe = self
  26. presenter.view = viewController
  27. view = viewController
  28. return viewController
  29. }
  30. func push(
  31. with model: TransactionModel?,
  32. on source: UIViewController,
  33. receiptDetailType: ReceiptDetailType?
  34. ) {
  35. self.model = model
  36. self.receiptDetailType = receiptDetailType
  37. let vc = getMainView()
  38. source.navigationController?.pushViewController(vc, animated: true)
  39. }
  40. func pop() {
  41. view.navigationController?.popViewController(animated: true)
  42. }
  43. }