import axios, {AxiosRequestConfig} from 'axios';
import {toast} from "amis";

/**
 * 全局请求拦截,方便对错误进行统一处理
 * @param config
 */
export function request(config: AxiosRequestConfig) {
    let instance = axios.create();
    return new Promise((resolve, reject) => {
        let onSuccess = (res:any) => {
            console.log("onSuccess", res);
            if (res.data == null) {
                console.log("reject data")
                reject(res);
            } else if (res.data.status == 40001) {
                // 未登陆
                console.log("redirect url", res.data.redirectUrl)
                window.location.href = res.data.redirectUrl;
            } else if (res.data.status == 40002) {
                // 无权限
                console.log("not permission, url", config.url);
                toast['error']('您无访问权限,请申请!', '消息');
                reject(res);
            } else {
                resolve(res)
            }
        }

        let onFail = (error:any) => {
            console.log("onFail", error)
            reject(error);
        }
        return instance.request(config)
            .then(onSuccess, onFail)
            .catch(onFail);
    })
}