import api from "./index.js" import { showToast } from '../components/common.js' let authToken = '' export function toLogin(url) { return new Promise((resolve, reject) => { let saveTime = uni.getStorageSync('saveTime') let expires_in = uni.getStorageSync('expires_in') let token = uni.getStorageSync('token') if(url.indexOf('api/v1') !== -1 && ((saveTime && expires_in && Date.now() > saveTime + expires_in) || !expires_in || !saveTime || !token)) { uni.redirectTo({ url: '/pages/user/login' }) } else { resolve() } // if((saveTime && expires_in && Date.now() > saveTime + expires_in) || !expires_in || !saveTime) { // uni.navigateTo({ // url: '/pages/user/login' // }) // resolve() // } else { // resolve() // } }) } export function get (url = '', data = {}, flag = true) { return new Promise(async (resolve, reject) => { if(!url.includes('/pay/')) { await toLogin(url) } uni.request({ url: api.url + url, data: data, method: 'GET', header: { Authorization: uni.getStorageSync('token') || authToken, accept: "application/json", appid: api.appId }, success: res => { if (res.statusCode === 200 || res.statusCode === 201) { resolve(res.data) } else if (res.statusCode === 404){ showToast(res.data.message || res.data.error) reject(res.data.message || res.data.error) setTimeout(function() { uni.navigateBack({delta: 1}) }, 1000) } else if(res.statusCode === 401 && flag) { get(url, data, false) } else if(res.statusCode === 429) { resolve(res.data) showToast('系统繁忙,请稍后重试') } else { let msg = res.data.message || res.data.error if(msg) { if(msg == 'Unauthenticated') { uni.removeStorageSync('token') uni.removeStorageSync('saveTime') uni.removeStorageSync('expires_in') uni.redirectTo({ url: '/pages/user/login' }) } } reject(msg) } }, fail:(err)=>{ console.log('fail', err) }, complete: async(complete) => { } }) }) } export function getReq (url = '', data = {}, flag = true) { return new Promise((resolve, reject) => { uni.request({ url: api.url + url, data: data, method: 'GET', header: { Authorization: uni.getStorageSync('token') || authToken, accept: "application/json", appid: api.appId }, success: res => { if (res.statusCode === 200 || res.statusCode === 201) { resolve(res.data) } else if(res.statusCode === 401 && flag) { reject(res.data) getReq(url, data, false) } else if (res.statusCode === 401 && !flag){ showToast(res.data.message || res.data.error) resolve(res.data) } else if (res.statusCode === 404){ reject(res.data.message) } else if(res.statusCode === 429) { showToast('系统繁忙,请稍后重试') resolve(res.data) } else { let msg = res.data.message || res.data.error if(msg) { if(msg == 'Unauthenticated') { uni.removeStorageSync('token') uni.removeStorageSync('saveTime') uni.removeStorageSync('expires_in') uni.redirectTo({ url: '/pages/user/login' }) } } reject(msg) reject(res.data.message || res.data.error) } }, fail:(err)=>{ }, complete: async(complete) => { } }) }) } export function post (url = '', data = {}, requestType = 'POST', flag = true) { return new Promise(async(resolve, reject) => { if(!url.includes('order/create') && !url.includes('user/vip')) { await toLogin(url) } uni.request({ method: requestType, url: api.url + url, data, header: { Authorization: uni.getStorageSync('token') || authToken, accept: "application/json", appid: api.appId }, success: res => { if (res.statusCode === 200 || res.statusCode === 201) { resolve(res.data) } else if (res.statusCode === 404){ showToast(res.data.message || res.data.error) reject(res.data.message) } else if(res.statusCode === 401 && flag) { post(url, data, requestType, false) } else if(res.statusCode === 429) { showToast('系统繁忙,请稍后重试') resolve(res.data) } else { let msg = res.data.message || res.data.error if(url.indexOf('decrypt/data') === -1 && msg == 'Unauthenticated') { uni.removeStorageSync('token') uni.removeStorageSync('saveTime') uni.removeStorageSync('expires_in') uni.redirectTo({ url: '/pages/user/login' }) } reject(msg) } }, fail:(err)=>{ }, complete: async (complete) => { } }) }) }