1
0
mirror of https://github.com/sasjs/adapter.git synced 2026-01-10 22:00:05 +00:00

fix(error): added error handling for http responses with status 401 and 403

This commit is contained in:
Yury Shkoda
2020-09-18 12:54:17 +03:00
parent 6fb9d11712
commit 6a055a4fc6
2 changed files with 35 additions and 14 deletions

View File

@@ -37,13 +37,28 @@ export async function makeRequest<T>(
...request,
headers: { ...request.headers, [tokenHeader]: token }
}
return fetch(url, retryRequest).then((res) => {
etag = res.headers.get('ETag')
return responseTransform(res)
})
} else {
let body: any = await response.text()
try {
body = JSON.parse(body)
body.message = `Forbidden. Check your permissions and user groups. ${
body.message || ''
}`
body = JSON.stringify(body)
} catch (_) {}
return Promise.reject({ status: response.status, body })
}
} else {
const body = await response.text()
let body: any = await response.text()
if (needsRetry(body)) {
if (retryCount < retryLimit) {
@@ -65,6 +80,18 @@ export async function makeRequest<T>(
}
}
if (response.status === 401) {
try {
body = JSON.parse(body)
body.message = `Unauthorized request. Check your credentials(client, secret, access token). ${
body.message || ''
}`
body = JSON.stringify(body)
} catch (_) {}
}
return Promise.reject({ status: response.status, body })
}
} else {
@@ -104,5 +131,6 @@ export async function makeRequest<T>(
return responseTransformed
}
})
return { result, etag }
}