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.
80 lines
2.3 KiB
80 lines
2.3 KiB
//
|
|
// RecipientsWireframe.swift
|
|
// GME Remit
|
|
//
|
|
// Created by InKwon James Kim on 08/08/2019.
|
|
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class RecipientsWireframe {
|
|
weak var view: UIViewController!
|
|
weak var output: RecipientsWireframeOutput?
|
|
}
|
|
|
|
extension RecipientsWireframe: RecipientsWireframeInput {
|
|
|
|
var storyboardName: String {return "Recipients"}
|
|
|
|
func getMainView() -> UIViewController {
|
|
let service = RecipientsService()
|
|
let interactor = RecipientsInteractor(service: service)
|
|
let presenter = RecipientsPresenter()
|
|
let viewModel = RecipientsViewModel()
|
|
let viewController = viewControllerFromStoryboard(of: RecipientsViewController.self)
|
|
|
|
output = presenter
|
|
|
|
viewController.viewModel = viewModel
|
|
interactor.output = presenter
|
|
presenter.interactor = interactor
|
|
presenter.wireframe = self
|
|
presenter.viewModel = viewModel
|
|
|
|
viewModel.presenter = presenter
|
|
|
|
view = viewController
|
|
return viewController
|
|
}
|
|
|
|
func openSelectAccount(with accounts: [Account]) {
|
|
let wireframe = SelectPaymentWireframe()
|
|
wireframe.delegate = self
|
|
wireframe.openSelectPaymentUsingPanModal(with: accounts, in: view)
|
|
}
|
|
|
|
func openAddRecipient(with delegate: SetupRecipientDelegate) {
|
|
SetupRecipientWireframe().openNew(with: delegate, on: view) {
|
|
self.output?.openedSetupRecipient()
|
|
}
|
|
}
|
|
|
|
func openEditRecipient(who recipient: Recipient, with delegate: SetupRecipientDelegate) {
|
|
SetupRecipientWireframe().openEdit(using: recipient, with: delegate, on: view) {
|
|
self.output?.openedSetupRecipient()
|
|
}
|
|
}
|
|
|
|
func goNextStep(who recipient: Recipient, with account: Account) {
|
|
guard let navigationVC = view.navigationController else {
|
|
return
|
|
}
|
|
|
|
let wireframe = SendMoneyParentWireframe()
|
|
wireframe.open(for: recipient, with: account, in: navigationVC)
|
|
}
|
|
}
|
|
|
|
extension RecipientsWireframe: SelectPaymentDelegate {
|
|
func selectPayment(_ viewController: SelectPaymentViewController, selectedAccount: Account) {
|
|
viewController.dismiss(animated: true) {
|
|
self.output?.setSelectedAccount(selectedAccount)
|
|
}
|
|
}
|
|
|
|
func selectPayment(_ viewController: SelectPaymentViewController, error: Error) {
|
|
self.output?.setSelectAccountError(with: error)
|
|
}
|
|
|
|
}
|