HotSearchHttpImpl.kt 1.82 KB
Newer Older
1 2 3 4 5
package com.yidianling.consultant.http.hotsearch

import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlnet.YDLHttpUtils
6
import com.yidianling.consultant.bean.FunctionWordConsultBean
7
import com.yidianling.consultant.bean.HotSearchBean
8
import com.yidianling.consultant.bean.HotSearchKeyWordDataBean
upwork.021 committed
9
import com.yidianling.consultant.bean.SearchWordsBean
10 11
import com.yidianling.consultant.http.ExpertSearchParam
import com.yidianling.consultant.model.SearchApi
12
import com.yidianling.consultant.model.bean.FunctionWordBean
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
import io.reactivex.Observable

/**
 * @author yuanWai
 * @描述:
 * @Copyright Copyright (c) 2018
 * @Company 壹点灵
 * @date 2018/12/11
 */
class HotSearchHttpImpl : IHotSearchHttp {

    companion object {
        fun getInstance(): HotSearchHttpImpl {
            return Holder.INSTANCE
        }

        fun clearSearchApi() {
            Holder.INSTANCE.searchApi = null
        }
    }

    object Holder {
        val INSTANCE = HotSearchHttpImpl()
    }

    private var searchApi: SearchApi? = null

    private fun getSearchApi(): SearchApi {
        if (searchApi == null) {
            searchApi = YDLHttpUtils.Companion.obtainApi(SearchApi::class.java)
        }
        return searchApi!!
    }

    override fun searchData(): Observable<BaseAPIResponse<HotSearchBean>> {
        return RxUtils.mapObservable(ExpertSearchParam(""))
49 50 51 52 53
            .flatMap {
                getSearchApi().searchPage()
            }
    }

霍志良 committed
54
    override fun searchHotWordData(map: HashMap<String, Any>): Observable<BaseAPIResponse<MutableList<FunctionWordBean>>> {
55
        return getSearchApi().searchFunctionWord(map)
56
    }
upwork.021 committed
57 58 59 60

    override fun getSearchWords(map: HashMap<String, Any>): Observable<BaseAPIResponse<SearchWordsBean>> {
        return getSearchApi().getSearchWords(map)
    }
61
}