BaseHomeModelImpl.kt 2.84 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
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) }
    }
}