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.

61 lines
1.5 KiB

  1. //
  2. // WalletStatementPresenter.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 03/10/2018.
  6. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. class WalletStatementPresenter {
  10. // MARK: Properties
  11. var models: [WalletStatement] = []
  12. var filteredModels: [WalletStatement] = [] {
  13. didSet {
  14. self.view?.show(models: filteredModels)
  15. }
  16. }
  17. weak var view: WalletStatementViewInterface?
  18. var interactor: WalletStatementInteractorInput?
  19. var wireframe: WalletStatementWireframeInput?
  20. // MARK: Converting entities
  21. }
  22. // MARK: WalletStatement module interface
  23. extension WalletStatementPresenter: WalletStatementModuleInterface {
  24. func viewIsReady() {
  25. self.fetchWalletSatement(fromDate: nil, toDate: nil)
  26. }
  27. func filterWalletInStatements() {
  28. }
  29. func fetchWalletSatement(fromDate: String?, toDate: String?) {
  30. self.view?.showLoading()
  31. self.interactor?.fetchWalletSatement(fromDate: fromDate, toDate: toDate)
  32. }
  33. }
  34. // MARK: WalletStatement interactor output interface
  35. extension WalletStatementPresenter: WalletStatementInteractorOutput {
  36. func show(error: Error) {
  37. self.view?.hideLoading()
  38. self.view?.show(error: error.localizedDescription)
  39. }
  40. func show(models: [WalletStatement]) {
  41. self.view?.hideLoading()
  42. self.models = models
  43. self.filteredModels = self.models
  44. }
  45. }