// // AutoDebitPresenter.swift // GME Remit // // Created by Mac on 12/19/18. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import Foundation class AutoDebitPresenter { // MARK: Properties weak var view: AutoDebitViewInterface? var interactor: AutoDebitInteractorInput? var wireframe: AutoDebitWireframeInput? // MARK: Converting entities } // MARK: AutoDebit module interface extension AutoDebitPresenter: AutoDebitModuleInterface { func fetchKFTCBankAccountList() { view?.startLoading() interactor?.fetchKFTCBankAccountList() } func deleteKFTCBankAccount(of username: String, with account: Account) { view?.startLoading() interactor?.deleteKFTCBankAccount(of: username, with: account) } func goAddAccount(model: KFTCModel?) { wireframe?.goAddAccountViewController(with: model) } func goRefreshToken(selectedLanguage: KftcLanguage?) { interactor?.refreshToken(language: selectedLanguage) } func openRegisterInboundAccount(with model: PenneyTestRequest) { wireframe?.openRegisterInboundAccount(with: model, delegate: self) } } // MARK: AutoDebit interactor output interface extension AutoDebitPresenter: AutoDebitInteractorOutput { func refreshTokenSuccess(header: [KftcHeader]?, url: String?) { wireframe?.goRefreshToken(header: header, url: url) } func refreshTokenError(with error: Error) { view?.didFailRefreshToken(with: error) } func setModel(with model: KFTCModel?) { view?.endLoading() view?.setModel(with: model) } func didFailSetModel(with error: Error) { view?.endLoading() view?.didFailSetModel(with: error) } func didDeleteAccount() { view?.endLoading() view?.didDeleteAccount() } func didFailDeleteAccount(with error: Error) { view?.endLoading() view?.didFailDeleteAccount(with: error) } } extension AutoDebitPresenter: InboundPennyTestSubmitDelegate { func didSuccess(_ viewController: UIViewController) { view?.startLoading() interactor?.fetchKFTCBankAccountList() } func didCancel(_ viewController: UIViewController) { view?.startLoading() interactor?.fetchKFTCBankAccountList() } }