package com.yidianling.im.session.action;

import android.text.TextUtils;

import com.yidianling.nimbase.business.session.actions.BaseAction;
import com.yidianling.im.R;
import com.yidianling.im.http.ImHttpImpl;
import com.yidianling.im.http.ImRetrofitApi;
import com.yidianling.im.http.param.ExpertParam;
import com.yidianling.router.im.IMExpertBuild;
import com.ydl.webview.H5Params;
import com.ydl.webview.NewH5Activity;
import com.ydl.ydlcommon.data.http.BaseResponse;
import com.ydl.ydlcommon.data.http.ThrowableConsumer;
import com.ydl.ydlcommon.utils.remind.ToastHelper;

import org.jetbrains.annotations.NotNull;

import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;

/**
 * author : Zhangwenchao
 * e-mail : zhangwch@yidianling.com
 * time   : 2018/04/23
 * 查看订单按钮
 */

public class OrderAction extends BaseAction {

    public OrderAction() {
        super(R.drawable.im_btn_chat_orders, R.string.im_input_panel_order);
    }

    @Override
    public void onClick() {
        //先根据uid判断用户类型:专家调一个接口,非专家调另外的接口
        ImRetrofitApi.Companion.getImJavaApi().getUserType(getAccount())
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(res -> {
                    if (res.code == 200) {
                        Observable<BaseResponse<IMExpertBuild>> observable;
                        if (TextUtils.equals(res.data, "2")) {//专家
                            observable = ImRetrofitApi.Companion.getImJavaApi().getPersonalChat(getAccount());
                        } else {
                            observable = ImHttpImpl.Companion.getInstance().getExpert(new ExpertParam(Integer.valueOf(getAccount()), 0));
                        }

                        observable.subscribeOn(Schedulers.io())
                                .observeOn(AndroidSchedulers.mainThread())
                                .subscribe(resp -> {
                                    if (resp != null && resp.data != null && resp.data.shareData != null && !TextUtils.isEmpty(resp.data.shareData.order_url)) {
                                        NewH5Activity.start(getActivity(), new H5Params(resp.data.shareData.order_url + "?search=" + resp.data.shareData.doctorName, "订单"));
                                    } else {
                                        if (resp != null) {
                                            ToastHelper.Companion.show(resp.msg);
                                        }
                                    }
                                }, new ThrowableConsumer() {
                                    @Override
                                    public void accept(@NotNull String msg) {
                                        ToastHelper.Companion.show(msg);
                                    }
                                });
                    } else {
                        ToastHelper.Companion.show(res.msg);
                    }
                }, throwable -> {
                    ToastHelper.Companion.show(throwable.getMessage());
                });

    }
}