
import {errInfo} from './err'
import {updToken} from './updateToken'

// 请求方式配置
const api 	 	 = "https://new-web-test.cnskl.com/api/"
// const api 	 = "https://mi-org.cnskl.com/api/"
const header = {
	"Accept"	: "application/json"
}

/**
 * 请求
 * @property {Object} req 
 */

const req = (obj) => {
	header.Authorization = wx.getStorageSync("token") || ""
	header["store-id"]   = wx.getStorageSync("storeId") || ""
	
	// 处理请求信息
	return new Promise((resolve, reject) => {
		wx.showLoading({
			title: "加载中..",
			mask: true
		})
		wx.request({
			url		: api + obj.url,
			header	: header,
			method	: obj.method || 'GET',
			data	: obj.data || {},
			success	: res => {
				wx.hideLoading();
				// 更新token
				if (res.header.Authorization) updToken(res.header.Authorization)
				// 处理信息
				if (res.data.status_code == 200) {
					resolve(res.data.data)
				} else {
					if (res.data.status_code == 401) {
						reject({
							login	: false,
							codeBeen: false
						})
					} else{
						reject(res.data)
					}
					errInfo(res.data)
				}
			},
			fail: err => {
				wx.showToast({
					title : err.errMsg,
					icon  : "none"
				})
				reject(err)
			}
		})
	})
}

/**
 * 上传
 * @property {Object} upload 
 */

const upload = (obj) => {
	// header
	header.Authorization = wx.getStorageSync("token") || ""
	// 处理上传信息
	return new Promise((resolve, reject) => {
		wx.showLoading({
			title: "上传中..",
			mask: true
		})
		wx.uploadFile({
			url		: api + obj.url,
			header	: header,
			name	: obj.key || "",
			filePath: obj.path || "",
			formData: obj.data || {},
			success	: res=>{
				wx.hideLoading();
				// 处理返回值
				let jsonData = JSON.parse(res.data)
				// 更新token
				if (res.header.Authorization) updToken(res.header.Authorization)
				// 处理信息
				if (jsonData.status_code == 200) {
					resolve(jsonData.data)
				} else {
					if (jsonData.status_code == 401) {
						reject({
							login: false
						})
					}
					errInfo(jsonData)
				}
			},
			fail	: err=>{
				wx.showToast({
					title : err.errMsg,
					icon  : "none"
				})
				reject(err)
			}
		})
	})
}

module.exports = {
	req,
	upload
}