// // NewsDetailPresenter.swift // Sirani // // Created by Anhar Solehudin on 06/04/19. // Copyright © 2019 Anhar Solehudin. All rights reserved. // import Foundation import SwiftyJSON class NewsDetailPresenter { private let siraniApiServices: SiraniApiServices weak private var view: NewsDetailViewDelegate? init(siraniApiServices: SiraniApiServices) { self.siraniApiServices = siraniApiServices } func attachView(view: NewsDetailViewDelegate?) { self.view = view } func detachView() { self.view = nil } func loadData(newsId: Int) { self.view?.showLoading() siraniApiServices.postToGetNewsDetail(newsId: newsId).responseJSON { response in if response.error == nil { guard let data = response.data else { return } if let json = try? JSON(data: data) { let newsDetail = NewsDetail( id: json["id_news"].intValue, title_news: json["title_news"].stringValue, pra_news: json["pra_news"].stringValue, news: json["news"].stringValue, create_date: json["create_date"].stringValue ) self.setNewsDetail(newsDetail: newsDetail) } else { self.showNoData() } } else { self.showNoData() } } } // other functions private func setNewsDetail(newsDetail: NewsDetail) { self.view?.setNewsDetail(newsDetail: newsDetail) DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) { self.view?.hideLoading() } } private func showNoData() { DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { self.view?.hideLoading() } } }