/*
* @author lfz
* @version 1.0
* @description 依托于uni的请求接口
* @date 2020.03.31
*
* */
import ProUtils from '../public/ProUtils.class';

export default class Http {
    constructor() {

    }

    /*
    * @description 基于uni的基础请求方法 没有对返回code 做处理 只对 是否返回了数据做了处理
    * @params String url    请求地址
    * @params Object data   请求参数
    * @params Object header 请求头部
    * @params String method 请求方法
    * @return promise
    * */
    static _http({url, data = {}, header = {}, method = 'POST'}) {
        let err_msg={};
        err_msg[ProUtils.getConfig('request.err_field')] = ''
        return new Promise((resolve, reject) => {
            uni.request({
                url: url,
                data: data,
                header: header,
                method,
                timeout: ProUtils.getConfig('request.timeout'),

                success: function (res) {

                    if (res.statusCode !== 200) {
                        err_msg[ProUtils.getConfig('request.err_field')] = 'code错误'+res.statusCode;
                        reject(err_msg);
                    } else {
                        let _data = res.data;
                        resolve(_data);
                    }
                },
                fail(){
                    err_msg[ProUtils.getConfig('request.err_field')] = '接口请求失败';
                    reject(err_msg);
                }
            });
        });
    }

    /*
    * @description post 请求 对成功返回数据的处理 对返回code 经常区别处理
    * @params String url    请求地址
    * @params Object data   请求参数
    * @params Object header 请求头部
    * @return promise
    * */
    static httpPost(url, data = {}, header = {}) {
        console.info('请求参数',url, data, header);
        return new Promise((resolve, reject) => {
            this._http({
                url,
                data,
                header,
                method: 'POST'
            })
                .then(res => {
                    console.info('响应参数',res);
                    let code = res.code / 1,
                        success_code = ProUtils.getConfig('request.success_code');
                    //
                    //请求数据成功

                    if (code === success_code ) {
                        resolve(res);
                    } else {

                        reject(res);
                    }
                })

                .catch(err=>{
                    console.log(err,'请求错误')
                    reject(err);
                })
        });
    }
}