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.
 
 
 
 

103 lines
2.4 KiB

//
// 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)
}
)
}
}