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.

75 lines
1.9 KiB

  1. //
  2. // SelectCouponWireframe.swift
  3. // GME Remit
  4. //
  5. // Created by InKwon Devik Kim on 30/05/2019.
  6. //Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. class SelectCouponWireframe {
  10. weak var view: UIViewController!
  11. private var coupons: [Coupon]?
  12. private var selectedCoupon: Coupon?
  13. }
  14. extension SelectCouponWireframe: SelectCouponWireframeInput {
  15. var storyboardName: String {return "SelectCoupon"}
  16. func getMainView() -> UIViewController {
  17. let service = SelectCouponService()
  18. let interactor = SelectCouponInteractor(
  19. service: service,
  20. selectedCoupon: selectedCoupon,
  21. coupons: coupons
  22. )
  23. let presenter = SelectCouponPresenter()
  24. let viewController = viewControllerFromStoryboard(of: SelectCouponViewController.self)
  25. viewController.presenter = presenter
  26. interactor.output = presenter
  27. presenter.interactor = interactor
  28. presenter.wireframe = self
  29. presenter.view = viewController
  30. view = viewController
  31. return viewController
  32. }
  33. func openSelectCouponUsingPanModal(
  34. didSelect coupon: Coupon?,
  35. with coupons: [Coupon]?,
  36. delegate: SelectCouponViewDelegate?,
  37. in source: UIViewController?
  38. ) {
  39. selectedCoupon = coupon
  40. self.coupons = coupons
  41. guard let vc = self.getMainView() as? SelectCouponViewController else {
  42. return
  43. }
  44. vc.delegate = delegate
  45. source?.presentPanModal(vc)
  46. }
  47. func openSelectCoupon(
  48. didSelect coupon: Coupon?,
  49. with coupons: [Coupon]?,
  50. delegate: SelectCouponViewDelegate?,
  51. in source: UIViewController?
  52. ) {
  53. selectedCoupon = coupon
  54. self.coupons = coupons
  55. guard let vc = getMainView() as? SelectCouponViewController else {
  56. return
  57. }
  58. vc.delegate = delegate
  59. let nav = UINavigationController(rootViewController: vc)
  60. source?.present(nav, animated: true, completion: nil)
  61. }
  62. }