import Von from './von/von'
import * as appService from '../services/appService'
import accountService from '../services/accountService'
import api from './index'
import constants from '../constants'
import toast from '../utils/toast'
const DEFAULT_BASE_URL = constants.url.BASE_API
const von = new Von(Von.engine.mp)
von.defaults.baseUrl = DEFAULT_BASE_URL
von.defaults.method = 'POST'
von.logger.show = true
von.interceptor.request.use(async (call) => {
const request = call.request
let version = appService.getVersion()
let channelType = appService.getChannel()
request.params = {
version,
channelType,
...request.params
}
let uniqueId = appService.getUniqueId()
let platform = appService.getPlatform()
request.header = {
platform,
channelType,
uniqueId,
...request.header
}
})
von.interceptor.response.use(async (call) => {
let request = call.request
let response = call.response
if (request.ignoreResponseJson) {
return response.data
}
if (response.data.code !== 0) {
handleResponseAccount(call).catch(console.warn)
let msg = `code: ${response.data.code}, msg: ${response.data.msg}`
let error = new Error(msg)
error.apiMsg = response.data.msg
throw error
}
return response.data
}, error => {
toast.show(error.apiMsg || '服务器繁忙,请稍后重试')
throw error
})
export default von