// // TarifSertifikatPresenter.swift // Sirani // // Created by Anhar Solehudin on 31/03/19. // Copyright © 2019 Anhar Solehudin. All rights reserved. // import Foundation import SwiftyJSON class TarifSertifikatPresenter { private let siraniApiServices: SiraniApiServices weak private var view: TarifSertifikatViewDelegate? init(siraniApiServices: SiraniApiServices) { self.siraniApiServices = siraniApiServices } func attachView(view: TarifSertifikatViewDelegate?) { self.view = view } func detachView() { self.view = nil } func loadData(jenis: String, columns: String, cursor: Int, prev: Int, search: String) { self.view?.hideNoDataLayout() self.view?.showLoading() var dataList = [TarifSertifikat]() siraniApiServices.postToGetTarifSertifikat(jenis: jenis, columns: columns, cursor: cursor, prev: prev, search: search).responseJSON { response in if response.error == nil { guard let data = response.data else { return } if let json = try? JSON(data: data) { if let data = json["data"].array { if data.count > 0 { for item in data { let tarifSertifikat = TarifSertifikat( keterangan: item["keterangan"].stringValue, biaya_sert_id: item["biaya_sert_id"].intValue, kategori: item["kategori"].stringValue, kategori_id: item["kategori_id"].intValue, tarif: item["tarif"].stringValue ) dataList.append(tarifSertifikat) } self.setDataList(dataList: dataList) } else { if cursor > 0 { self.setDataList(dataList: dataList) } else { self.showNoData() } } } else { self.showNoData() } } else { self.showNoData() } } else { self.showNoData() } } } // other functions private func setDataList(dataList: [TarifSertifikat]) { self.view?.setDataList(dataList: dataList) DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) { self.view?.hideLoading() } } private func showNoData() { DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { self.view?.showNoDataLayout() self.view?.hideLoading() } } }