refactor generateDispatcher

This commit is contained in:
srgooglo 2021-11-15 10:03:49 +01:00
parent 9fd9ce4ea7
commit 81b52fd65f

View File

@ -76,7 +76,7 @@ class Bridge {
function generateDispatcher(bridge, method, route, getContext) { function generateDispatcher(bridge, method, route, getContext) {
return function (body, query, options) { return function (body, query, options) {
return new Promise((resolve, reject) => { return new Promise(async (resolve, reject) => {
let requestParams = { let requestParams = {
parseData: true, parseData: true,
...options, ...options,
@ -90,27 +90,29 @@ function generateDispatcher(bridge, method, route, getContext) {
requestParams = { ...requestParams, ...getContext() } requestParams = { ...requestParams, ...getContext() }
} }
let result = [] let result = {
response: null,
error: null,
}
bridge.instance(requestParams) await bridge.instance(requestParams)
.then((response) => { .then((response) => {
if (response.status > 400) { result.response = response
throw new Error(response.data.error ?? response.data)
}
}) })
.catch((response) => { .catch((error) => {
result[0] = response console.error(error.response)
}) result.error = error.response.data.error ?? error.response.data
.then((response) => {
if (requestParams.parseData) {
result[1] = response.data
} else {
result[1] = response
}
})
.finally(() => {
return resolve(...result)
}) })
if (requestParams.parseData) {
if (result.error) {
return reject(result.error)
}
return resolve(result.response.data)
}
return resolve(result)
}) })
} }
} }