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

//
// 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: [CouponBoxModel]?
private var selectedCoupon: CouponBoxModel?
private weak var delegate: SelectCouponViewDelegate?
}
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
viewController.delegate = delegate
interactor.output = presenter
presenter.interactor = interactor
presenter.wireframe = self
presenter.view = viewController
view = viewController
return viewController
}
func openSelectCouponUsingPanModal(
didSelect coupon: CouponBoxModel?,
with coupons: [CouponBoxModel]?,
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: CouponBoxModel?,
with coupons: [CouponBoxModel]?,
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)
}
}