From 04a0b0b8a85acbb1c2683010e09fa521d613fbce Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 17 Jun 2026 13:33:30 +0300 Subject: [PATCH] refactor promisedRequest to use async/await --- src/services/api/helpers.js | 72 +++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/src/services/api/helpers.js b/src/services/api/helpers.js index 236893501..c01f2958c 100644 --- a/src/services/api/helpers.js +++ b/src/services/api/helpers.js @@ -66,7 +66,7 @@ export const paramsString = (params = {}) => { ) } -export const promisedRequest = ({ +export const promisedRequest = async ({ method, url, params, @@ -107,47 +107,41 @@ export const promisedRequest = ({ } } - return fetch(url, options).then((response) => { - return new Promise((resolve, reject) => { - // 204 is "No content", which fails to parse json (as you'd might think) - if (response.ok && response.status === 204) resolve() + const response = await fetch(url, options) - return response - .json() - .then((json) => { - if (!response.ok) { - return reject( - new StatusCodeError( - response.status, - json, - { url, options }, - response, - ), - ) - } + // 204 is "No content", which fails to parse json (as you'd might think) + if (response.ok && response.status === 204) return { _response: response } - if (typeof json !== 'object') { - return resolve({ - _response: response, - _value: json, - }) - } - json._response = response + if (!response.ok) { + throw new StatusCodeError( + response.status, + json, + { url, options }, + response, + ) + } - return resolve(json) - }) - .catch((error) => { - return reject( - new StatusCodeError( - response.status, - error, - { url, options }, - response, - ), - ) - }) - }) - }) + try { + const json = await response.json() + + if (typeof json !== 'object') { + return { + _response: response, + _value: json, + } + } + + json._response = response + + return json + } catch (error) { + throw new StatusCodeError( + response.status, + error, + { url, options }, + response, + ) + } } const authHeaders = (accessToken) => {