package com.casic.dcms.mvp.model;

import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.utils.retrofit.RetrofitServiceManager;

import rx.Observable;
import rx.Observer;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

/**
 * @Author: Pengxh
 * @Time: 2021/4/12 14:13
 * @Email: 290677893@qq.com
 **/
public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel {

    private OnShopSubmitListener listener;

    public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) {
        this.listener = shopSubmitListener;
    }

    /**
     * 数据回调接口
     */
    public interface OnShopSubmitListener {
        void onSuccess(ActionResultBean resultBean);

        void onFailure(Throwable throwable);
    }

    @Override
    public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude,
                                            String source, String caseLevel, String areaCode, String streetCode,
                                            String communityCode, String gridId, String description, String fieldintro,
                                            String fileIdVerify, int bzhours, int bzminis, String shopId,
                                            String shopkeeperName, String shopPhone) {
        Observable<ActionResultBean> observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude,
                source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify,
                bzhours, bzminis, shopId, shopkeeperName, shopPhone);
        return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<ActionResultBean>() {
            @Override
            public void onCompleted() {

            }

            @Override
            public void onError(Throwable e) {
                if (e.getCause() != null) {
                    listener.onFailure(e);
                }
            }

            @Override
            public void onNext(ActionResultBean resultBean) {
                if (resultBean != null) {
                    listener.onSuccess(resultBean);
                }
            }
        });
    }
}
