diff --git a/apps/meteor/app/utils/client/lib/RestApiClient.ts b/apps/meteor/app/utils/client/lib/RestApiClient.ts index 0621fe9850da92300e6adaf959286526630b987c..38b2dc44b5ee01fc72b8ec67d45174a69708ada0 100644 --- a/apps/meteor/app/utils/client/lib/RestApiClient.ts +++ b/apps/meteor/app/utils/client/lib/RestApiClient.ts @@ -28,11 +28,16 @@ export const APIClient = new RestApiClient({ baseUrl: baseURI.replace(/\/$/, ''), }); -APIClient.use(function (request, next) { +APIClient.use(async function (request, next) { try { - return next(...request); - } catch (e) { - return new Promise((resolve, reject) => { + return await next(...request); + } catch (error) { + if (!(error instanceof Response) || error.status !== 400) { + throw error; + } + + return new Promise(async (resolve, reject) => { + const e = await error.json(); process2faReturn({ error: e, result: null, diff --git a/packages/api-client/src/index.ts b/packages/api-client/src/index.ts index 90905a7812b5b464ac04734ee38869e2061dc801..c75b39da3b387fa9ebbb50eb2d0e9ea0562569cc 100644 --- a/packages/api-client/src/index.ts +++ b/packages/api-client/src/index.ts @@ -161,6 +161,11 @@ export class RestClient implements RestClientInterface { ...options, headers: { ...this.getCredentialsAsHeaders(), ...this.headers, ...headers }, method, + }).then(function (response) { + if (!response.ok) { + return Promise.reject(response); + } + return response; }); }