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

//
// SelectCouponWireframe.swift
// GME Remit
//
// Created by InKwon Devik Kim on 30/05/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class SelectCouponWireframe {
weak var view: UIViewController!
private var coupons: [Coupon]?
private var selectedCoupon: Coupon?
}
extension SelectCouponWireframe: SelectCouponWireframeInput {
var storyboardName: String {return "SelectCoupon"}
func getMainView() -> UIViewController {
let service = SelectCouponService()
let interactor = SelectCouponInteractor(
service: service,
selectedCoupon: selectedCoupon,
coupons: coupons
)
let presenter = SelectCouponPresenter()
let viewController = viewControllerFromStoryboard(of: SelectCouponViewController.self)
viewController.presenter = presenter
interactor.output = presenter
presenter.interactor = interactor
presenter.wireframe = self
presenter.view = viewController
view = viewController
return viewController
}
func openSelectCouponUsingPanModal(
didSelect coupon: Coupon?,
with coupons: [Coupon]?,
delegate: SelectCouponViewDelegate?,
in source: UIViewController?
) {
selectedCoupon = coupon
self.coupons = coupons
guard let vc = self.getMainView() as? SelectCouponViewController else {
return
}
vc.delegate = delegate
source?.presentPanModal(vc)
}
func openSelectCoupon(
didSelect coupon: Coupon?,
with coupons: [Coupon]?,
delegate: SelectCouponViewDelegate?,
in source: UIViewController?
) {
selectedCoupon = coupon
self.coupons = coupons
guard let vc = getMainView() as? SelectCouponViewController else {
return
}
vc.delegate = delegate
let nav = UINavigationController(rootViewController: vc)
source?.present(nav, animated: true, completion: nil)
}
}