// // AutoDebitInteractor.swift // GME Remit // // Created by Mac on 12/19/18. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import Foundation class AutoDebitInteractor { // MARK: Properties weak var output: AutoDebitInteractorOutput? private let service: AutoDebitServiceType // MARK: Initialization init(service: AutoDebitServiceType) { self.service = service } // MARK: Converting entities } // MARK: AutoDebit interactor input interface extension AutoDebitInteractor: AutoDebitInteractorInput { func fetchKFTCBankAccountList() { guard let userId = GMEDB.shared.user.string(.userId) else { return } self.service.fetchAccountList( username: userId, success: { [weak self] in guard let `self` = self else { return } self.output?.setModel(with: $0) }, failure: { [weak self] in guard let `self` = self else { return } self.output?.didFailSetModel(with: $0) } ) } func deleteKFTCBankAccount(of username: String, with account: Account) { self.service.deleteAccount( username: username, account: account, success: {[weak self] in guard let `self` = self else { return } self.output?.didDeleteAccount() }, failure: {[weak self] in guard let `self` = self else { return } self.output?.didFailDeleteAccount(with: $0) } ) } func refreshToken(language: KftcLanguage?) { guard let email = GMEDB.shared.user.string(.email), let language = language else { return } let service2 = AddAccountService() service.refreshTokenStep1( username: email, success: { response in let url = response?.url?.replacingOccurrences( of: "&lang=", with: "&lang=\(language.key ?? "eng")" ) ?? "" var header = [String: String]() response?.header?.forEach({ header[$0.key ?? ""] = $0.value ?? "" }) service2.fetchKftcUrlService( url: url, header: header, success: { self.output?.refreshTokenSuccess(header: response?.header, url: $0) }, failure: { self.output?.refreshTokenError(with: $0) } ) }, failure: { self.output?.refreshTokenError(with: $0) } ) } }