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.

90 lines
2.2 KiB

  1. //
  2. // AutoDebitPresenter.swift
  3. // GME Remit
  4. //
  5. // Created by Mac on 12/19/18.
  6. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. class AutoDebitPresenter {
  10. // MARK: Properties
  11. weak var view: AutoDebitViewInterface?
  12. var interactor: AutoDebitInteractorInput?
  13. var wireframe: AutoDebitWireframeInput?
  14. // MARK: Converting entities
  15. }
  16. // MARK: AutoDebit module interface
  17. extension AutoDebitPresenter: AutoDebitModuleInterface {
  18. func fetchKFTCBankAccountList() {
  19. view?.startLoading()
  20. interactor?.fetchKFTCBankAccountList()
  21. }
  22. func deleteKFTCBankAccount(of username: String, with account: Account) {
  23. view?.startLoading()
  24. interactor?.deleteKFTCBankAccount(of: username, with: account)
  25. }
  26. func goAddAccount(model: KFTCModel?) {
  27. wireframe?.goAddAccountViewController(with: model)
  28. }
  29. func goRefreshToken(selectedLanguage: KftcLanguage?) {
  30. interactor?.refreshToken(language: selectedLanguage)
  31. }
  32. func openRegisterInboundAccount(with model: PenneyTestRequest) {
  33. wireframe?.openRegisterInboundAccount(with: model, delegate: self)
  34. }
  35. }
  36. // MARK: AutoDebit interactor output interface
  37. extension AutoDebitPresenter: AutoDebitInteractorOutput {
  38. func refreshTokenSuccess(header: [KftcHeader]?, url: String?) {
  39. wireframe?.goRefreshToken(header: header, url: url)
  40. }
  41. func refreshTokenError(with error: Error) {
  42. view?.didFailRefreshToken(with: error)
  43. }
  44. func setModel(with model: KFTCModel?) {
  45. view?.endLoading()
  46. view?.setModel(with: model)
  47. }
  48. func didFailSetModel(with error: Error) {
  49. view?.endLoading()
  50. view?.didFailSetModel(with: error)
  51. }
  52. func didDeleteAccount() {
  53. view?.endLoading()
  54. view?.didDeleteAccount()
  55. }
  56. func didFailDeleteAccount(with error: Error) {
  57. view?.endLoading()
  58. view?.didFailDeleteAccount(with: error)
  59. }
  60. }
  61. extension AutoDebitPresenter: InboundPennyTestSubmitDelegate {
  62. func didSuccess(_ viewController: UIViewController) {
  63. view?.startLoading()
  64. interactor?.fetchKFTCBankAccountList()
  65. }
  66. func didCancel(_ viewController: UIViewController) {
  67. view?.startLoading()
  68. interactor?.fetchKFTCBankAccountList()
  69. }
  70. }