Initial commit
This commit is contained in:
41
wechat-mini-program/utils/request.js
Normal file
41
wechat-mini-program/utils/request.js
Normal file
@@ -0,0 +1,41 @@
|
||||
const app = getApp()
|
||||
|
||||
function unwrap(data) {
|
||||
if (data && typeof data === 'object' && 'code' in data && 'data' in data) {
|
||||
return data.data
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
function request({ url, method = 'GET', data = {}, header = {} }) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const app = getApp()
|
||||
if (app.globalData.token) {
|
||||
header['Authorization'] = `Bearer ${app.globalData.token}`
|
||||
}
|
||||
wx.request({
|
||||
url: `${app.globalData.baseUrl}${url.startsWith('/') ? '' : '/'}${url}`,
|
||||
method,
|
||||
data,
|
||||
header,
|
||||
success: (res) => {
|
||||
// Check HTTP status code
|
||||
if (res.statusCode >= 200 && res.statusCode < 300) {
|
||||
// Check logical code from backend wrapper
|
||||
if (res.data && typeof res.data === 'object' && 'code' in res.data) {
|
||||
if (res.data.code < 200 || res.data.code >= 300) {
|
||||
reject(res.data)
|
||||
return
|
||||
}
|
||||
}
|
||||
resolve(unwrap(res.data))
|
||||
} else {
|
||||
reject(res)
|
||||
}
|
||||
},
|
||||
fail: (err) => reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = { request }
|
||||
Reference in New Issue
Block a user