package com.yidianling.home.model
import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlcommon.data.http.RxUtils
import com.yidianling.home.constants.IHomeBaseContract
import com.yidianling.home.http.HomeBaseHttp
import com.yidianling.home.model.bean.*
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
open class BaseHomeModelImpl : IHomeBaseContract.Model {
/**
* 首页咨询请求
*/
override fun consultRequest(category: String): Observable<HomeConsultBean> {
return HomeBaseHttp.getInstance().getConsultData(category).compose(RxUtils.resultJavaData())
.onErrorReturn { HomeConsultBean(true) }
}
/**
* 首页问答 - 点赞
*/
override fun askZan(id: String): Observable<AskResultBean> {
return HomeBaseHttp.getInstance().askZan(id).compose(RxUtils.resultData())
}
/**
* 首页问答 - 关注
*/
override fun askFocus(id: String): Observable<AskResultBean> {
return HomeBaseHttp.getInstance().askFocus(id).compose(RxUtils.resultData())
}
/**
* 首页电台请求
*/
override fun fmRequest(): Observable<HomeFMBean> {
return HomeBaseHttp.getInstance().getFMData().compose(RxUtils.resultJavaData())
.onErrorReturn { HomeFMBean(true) }
}
/**
* 首页课程请求
*/
override fun courseRequest(): Observable<HomeCourseBean> {
return HomeBaseHttp.getInstance().getCourseData().compose(RxUtils.resultJavaData())
.onErrorReturn { HomeCourseBean(true) }
}
/**
* 首页测试题请求
*/
override fun testRequest(): Observable<BaseAPIResponse<MutableList<HomeTestItemBean>>> {
return HomeBaseHttp.getInstance().getTestData()
}
/**
* 首页倾听请求
*/
override fun confideRequest(goodType: String): Observable<HomeConfideBean> {
return HomeBaseHttp.getInstance().getConfideData(goodType).compose(RxUtils.resultJavaData())
.onErrorReturn { HomeConfideBean(true) }
}
/**
* 首页问答请求
*/
override fun askRequest(): Observable<HomeAskBean> {
return HomeBaseHttp.getInstance().getAskData().compose(RxUtils.resultJavaData())
.onErrorReturn { HomeAskBean(true) }
}
/**
* 首页文章请求
*/
override fun articleRequest(): Observable<HomeArticleBean> {
return HomeBaseHttp.getInstance().getArticleData().compose(RxUtils.resultJavaData())
.onErrorReturn { HomeArticleBean(true) }
}
/**
* 首页头部 分类&Banner请求
*/
override fun headerRequest(): Observable<HomeHeaderBean> {
return HomeBaseHttp.getInstance().newHomeHeaderRequest().compose(RxUtils.resultJavaData())
.onErrorReturn { HomeHeaderBean(true) }
}
}