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.
 
 
 
 

96 lines
2.1 KiB

//
// AddAccountPresenter.swift
// GME Remit
//
// Created by InKwon Devik Kim on 12/04/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
class AddAccountPresenter {
// MARK: Properties
weak var view: AddAccountViewInterface?
var interactor: AddAccountInteractorInput?
var wireframe: AddAccountWireframeInput?
private var model: KFTCModel?
init(with model: KFTCModel?) {
self.model = model
}
// MARK: Converting entities
}
// MARK: AddAccount module interface
extension AddAccountPresenter: AddAccountModuleInterface {
func viewIsReady() {
interactor?.viewIsReady(model: model)
}
func verifyAccount(
customerID: String,
bankCode: String,
accountNumber: String
){
if customerID == "" || bankCode == "" || accountNumber == "" {
let error = NSError.init(
domain: "Invalid Bank Account",
code: 0,
message: "Check your bank account information")
view?.failure(error: error)
} else {
view?.startLoading()
interactor?.verifyAccount(
customerID: customerID,
bankCode: bankCode,
accountNumber: accountNumber
)
}
}
func doGetTestURL(url: String, header: [String: String]) {
view?.startLoading()
interactor?.fetchKFTCUrl(url: url, header: header)
}
func goKFTC(url: String, header: [KftcHeader]?) {
wireframe?.pushKFTCViewControllerOf(
url: url.components(separatedBy: .whitespaces).joined(),
header: header)
}
}
// MARK: AddAccount interactor output interface
extension AddAccountPresenter: AddAccountInteractorOutput {
func setModel(model: (bankList: [BankInformation]?, kftcModel: KFTCModel?)) {
view?.setModel(model: model)
}
func failureSetModel(error: Error) {
view?.failureSetModel(error: error)
}
func successVerify() {
view?.endLoading()
view?.successVerify()
}
func failure(error: Error) {
view?.endLoading()
view?.failure(error: error)
}
func successTestURL(url: String) {
view?.endLoading()
view?.successTestURL(url: url)
}
}