// // FaqPresenter.swift // Sirani // // Created by Anhar Solehudin on 24/03/19. // Copyright © 2019 Anhar Solehudin. All rights reserved. // import Foundation import SwiftyJSON class FaqPresenter { private let siraniApiServices: SiraniApiServices weak private var view: FaqViewDelegate? init(siraniApiServices: SiraniApiServices) { self.siraniApiServices = siraniApiServices } func attachView(view: FaqViewDelegate?) { self.view = view } func detachView() { self.view = nil } // FAQ CATEGORY func loadDataCategory(){ self.view?.showLoading() var dataList = [FaqCategory]() siraniApiServices.postToGetFaqCategory().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 faqCategory = FaqCategory( faq_cat_id: item["faq_cat_id"].intValue, faq_cat_name: item["faq_cat_name"].stringValue, faq_cat_label: item["faq_cat_label"].stringValue, selected: false ) dataList.append(faqCategory) } self.setCategoryDataList(faqCategoryList: dataList) } else { self.showEmptyCategpry() } } else { self.showEmptyCategpry() } } else { self.showEmptyCategpry() } } else { self.showEmptyCategpry() } } } private func setCategoryDataList(faqCategoryList: [FaqCategory]) { self.view?.setFaqCategoryList(faqCategoryList: faqCategoryList) DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) { self.view?.hideLoading() } } private func showEmptyCategpry() { DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { self.view?.setFaqCategoryList(faqCategoryList: []) self.view?.hideLoading() } } // FAQ CONTENT func loadDataContent(faq_cat_id :Int){ self.view?.showLoading() var dataList = [FaqContent]() siraniApiServices.postToGetFaqContent(faq_cat_id: faq_cat_id).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 faqContent = FaqContent( faq_essay_id: item["faq_essay_id"].intValue, faq_cat_id: item["faq_cat_id"].intValue, faq_essay_question: item["faq_essay_question"].stringValue, faq_essay_answer: item["faq_essay_answer"].stringValue ) dataList.append(faqContent) } self.setContentDataList(faqContentList: dataList) } else { self.showEmptyContent() } } else { self.showEmptyContent() } } else { self.showEmptyContent() } } else { self.showEmptyContent() } } } private func setContentDataList(faqContentList: [FaqContent]) { self.view?.setFaqContentList(faqContentList: faqContentList) DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) { self.view?.hideLoading() } } private func showEmptyContent() { DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { self.view?.setFaqContentList(faqContentList: []) self.view?.hideLoading() } } }