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.

77 lines
2.0 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: [CouponBoxModel]?
  12. private var selectedCoupon: CouponBoxModel?
  13. private weak var delegate: SelectCouponViewDelegate?
  14. }
  15. extension SelectCouponWireframe: SelectCouponWireframeInput {
  16. var storyboardName: String {return "SelectCoupon"}
  17. func getMainView() -> UIViewController {
  18. let service = SelectCouponService()
  19. let interactor = SelectCouponInteractor(
  20. service: service,
  21. selectedCoupon: selectedCoupon,
  22. coupons: coupons
  23. )
  24. let presenter = SelectCouponPresenter()
  25. let viewController = viewControllerFromStoryboard(of: SelectCouponViewController.self)
  26. viewController.presenter = presenter
  27. viewController.delegate = delegate
  28. interactor.output = presenter
  29. presenter.interactor = interactor
  30. presenter.wireframe = self
  31. presenter.view = viewController
  32. view = viewController
  33. return viewController
  34. }
  35. func openSelectCouponUsingPanModal(
  36. didSelect coupon: CouponBoxModel?,
  37. with coupons: [CouponBoxModel]?,
  38. delegate: SelectCouponViewDelegate?,
  39. in source: UIViewController?
  40. ) {
  41. selectedCoupon = coupon
  42. self.coupons = coupons
  43. guard let vc = self.getMainView() as? SelectCouponViewController else {
  44. return
  45. }
  46. vc.delegate = delegate
  47. source?.presentPanModal(vc)
  48. }
  49. func openSelectCoupon(
  50. didSelect coupon: CouponBoxModel?,
  51. with coupons: [CouponBoxModel]?,
  52. delegate: SelectCouponViewDelegate?,
  53. in source: UIViewController?
  54. ) {
  55. selectedCoupon = coupon
  56. self.coupons = coupons
  57. guard let vc = getMainView() as? SelectCouponViewController else {
  58. return
  59. }
  60. vc.delegate = delegate
  61. let nav = UINavigationController(rootViewController: vc)
  62. source?.present(nav, animated: true, completion: nil)
  63. }
  64. }