import http from './http.js'

const config = {
	// 示例
	// wxLogin : {url : '/api/wxLogin', method : 'POST', 
	// auth : false, showLoading : true, loadingTitle : '加载中...',
	// limit : 1000
	// },
	
	getConfig : {url : '/api/getConfig', method : 'GET', limit : 500},
	
	
	// 微信登录接口
	wxLogin: {
		url: '/login/login',
		method: 'POST', 
		limit : 500,
		showLoading : true,
	},
	
	// 修改个人信息接口
	updateInfo: {
		url: '/info/updateInfo',
		method: 'POST',
		auth: true, 
		limit : 500,
		showLoading : true,
	},
}



export function api(key, data, callback, loadingTitle){
	let req = config[key]
	
	if (!req) {
		console.error('无效key' + key);
		return
	}
	
	if(typeof callback == 'string'){
		loadingTitle = callback
	}
	
	if(typeof data == 'function'){
		callback = data
		data = {}
	}
	
	// 接口限流
	if(req.limit){
		let storageKey = 'limit:' + req.url
		let storage = uni.getStorageSync(storageKey)
		if(storage && new Date().getTime() - parseInt(storage) < req.limit){
			return
		}
		uni.setStorageSync(storageKey, new Date().getTime())
	}
	
	//必须登录
	if (req.auth) {
		if (!uni.getStorageSync('token')) {
			uni.navigateTo({
				url: '/pages/login/mobile'
			})
			console.error('需要登录')
			return
		}
	}
	
	http.http(req.url, data, callback, req.method, 
	loadingTitle || req.showLoading, loadingTitle || req.loadingTitle)
}



export default api