package com.sjkj.appthreefloor_tsgz.net;

import android.content.Context;

import com.sjkj.appthreefloor_tsgz.bean.NoticeListBean;
import com.sjkj.base_lib.entity.Params;
import com.sjkj.base_lib.entity.ResponseBean;
import com.sjkj.base_lib.net.RetrofitFactory;
import com.sjkj.base_lib.net.data.exception.BusinessException;
import com.sjkj.base_lib.net.domain.interactor.UseCase;
import com.sjkj.base_lib.utils.AppTools;

import java.util.List;

import rx.Observable;
import rx.functions.Func1;

/**
 * 首页-通知公告
 */
public class HomeNoticeListRequest extends UseCase {
    private Context context;
    private RetrofitService service;

    private Params params;

    public Params getParams() {
        return params;
    }

    public void setParams(Params params) {
        this.params = params;
    }

    public HomeNoticeListRequest(Context context) {
        this.context = context;
        service = RetrofitFactory.getRetrofit(AppTools.getBaseUrl()).create(RetrofitService.class);
    }

    @Override
    protected Observable buildUseCaseObservable() {
        return service.homeNoticeList(params).flatMap(new Func1<ResponseBean<List<NoticeListBean>>, Observable<List<NoticeListBean>>>() {
            @Override
            public Observable<List<NoticeListBean>> call(ResponseBean<List<NoticeListBean>> responseBean) {
                if (!ResponseBean.CODE_SUCCESS.
                        equals(responseBean.getCode())) {
                    return Observable.error(new BusinessException(responseBean.getMsg()));
                }
                return Observable.just(responseBean.getData());
            }
        });
    }
}
