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.
84 lines
2.1 KiB
84 lines
2.1 KiB
//
|
|
// RecipientsPresenter.swift
|
|
// GME Remit
|
|
//
|
|
// Created by InKwon James Kim on 08/08/2019.
|
|
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class RecipientsPresenter {
|
|
|
|
// MARK: Properties
|
|
|
|
weak var viewModel: RecipientsViewModelInterface?
|
|
var interactor: RecipientsInteractorInput?
|
|
var wireframe: RecipientsWireframeInput?
|
|
|
|
}
|
|
|
|
// MARK: Recipients module interface
|
|
|
|
extension RecipientsPresenter: RecipientsModuleInterface {
|
|
func openSelectAccount(with accounts: [Account]) {
|
|
wireframe?.openSelectAccount(with: accounts)
|
|
}
|
|
|
|
func openAddRecipient(with delegate: SetupRecipientDelegate) {
|
|
viewModel?.progress(isShow: true)
|
|
wireframe?.openAddRecipient(with: delegate)
|
|
}
|
|
|
|
func openEditRecipient(who recipient: Recipient, with delegate: SetupRecipientDelegate) {
|
|
viewModel?.progress(isShow: true)
|
|
wireframe?.openEditRecipient(who: recipient, with: delegate)
|
|
}
|
|
|
|
func deleteRecipient(who recipient: Recipient) {
|
|
viewModel?.progress(isShow: true)
|
|
interactor?.deleteRecipient(who: recipient)
|
|
}
|
|
|
|
func fetchRecipients(isRefresh: Bool) {
|
|
viewModel?.progress(isShow: true)
|
|
interactor?.fetchRecipients(isRefresh: isRefresh)
|
|
}
|
|
|
|
func goNextStep(who recipient: Recipient, with account: Account) {
|
|
wireframe?.goNextStep(who: recipient, with: account)
|
|
}
|
|
}
|
|
|
|
// MARK: Recipients interactor output interface
|
|
|
|
extension RecipientsPresenter: RecipientsInteractorOutput {
|
|
func setRecipients(using model: [Recipient]) {
|
|
viewModel?.progress(isShow: false)
|
|
viewModel?.setRecipients(using: model)
|
|
}
|
|
|
|
func setAccounts(using model: [Account]) {
|
|
viewModel?.setAccounts(using: model)
|
|
}
|
|
|
|
func setError(with error: Error) {
|
|
viewModel?.progress(isShow: false)
|
|
viewModel?.setError(with: error)
|
|
}
|
|
|
|
}
|
|
|
|
extension RecipientsPresenter: RecipientsWireframeOutput {
|
|
func setSelectedAccount(_ account: Account) {
|
|
viewModel?.setSelectedAccount(account)
|
|
}
|
|
|
|
func openedSetupRecipient() {
|
|
viewModel?.progress(isShow: false)
|
|
}
|
|
|
|
func setSelectAccountError(with error: Error) {
|
|
viewModel?.setError(with: error)
|
|
}
|
|
}
|