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.
71 lines
2.0 KiB
71 lines
2.0 KiB
//
|
|
// ResendPresenter.swift
|
|
// GME Remit
|
|
//
|
|
// Created by gme_2 on 18/03/2019.
|
|
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class ResendPresenter {
|
|
|
|
// MARK: Properties
|
|
|
|
var transactions: [ResendTransactionModel] = []
|
|
|
|
var filteredTransaction: [ResendTransactionModel] = []
|
|
|
|
weak var view: ResendViewInterface?
|
|
var interactor: ResendInteractorInput?
|
|
var wireframe: ResendWireframeInput?
|
|
|
|
// MARK: Converting entities
|
|
}
|
|
|
|
// MARK: Resend module interface
|
|
|
|
extension ResendPresenter: ResendModuleInterface {
|
|
|
|
func fetchList(fromDate: String, toDate: String) {
|
|
self.interactor?.fetchList(fromDate: fromDate, toDate: toDate)
|
|
}
|
|
|
|
func viewIsReady() {
|
|
self.view?.showLoading()
|
|
self.interactor?.fetchList(fromDate: nil, toDate: nil)
|
|
}
|
|
|
|
func filter(searchText: String) {
|
|
if searchText.isEmpty {
|
|
self.filteredTransaction = self.transactions
|
|
return
|
|
}
|
|
self.filteredTransaction = self.transactions.filter({
|
|
return ($0.controlNumber ?? "").lowercased().contains(searchText) || ($0.bankName ?? "").lowercased().contains(searchText) || ($0.recieverName ?? "").lowercased().contains(searchText)
|
|
}).sorted(by: { (model, _) in
|
|
return (model.controlNumber ?? "").lowercased().hasPrefix(searchText) || (model.recieverName ?? "").lowercased().hasPrefix(searchText) || (model.bankName ?? "").lowercased().hasPrefix(searchText)
|
|
})
|
|
self.view?.show(models: filteredTransaction)
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
// MARK: Resend interactor output interface
|
|
|
|
extension ResendPresenter: ResendInteractorOutput {
|
|
func show(error: Error) {
|
|
self.view?.hideLoading()
|
|
self.view?.hideLoading()
|
|
}
|
|
|
|
func show(model: ResendListModel) {
|
|
self.view?.hideLoading()
|
|
self.transactions = model.transactions ?? []
|
|
self.view?.show(model: model)
|
|
}
|
|
}
|