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.
101 lines
2.4 KiB
101 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 email = GMEDB.shared.user.string(.email)
|
|
else {
|
|
return
|
|
}
|
|
|
|
self.service.fetchAccountList(
|
|
username: email,
|
|
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)
|
|
}
|
|
)
|
|
}
|
|
}
|