From 5fa2634d6070b84e912bb85017cf686cd7abecdf Mon Sep 17 00:00:00 2001 From: "sp.wack" <83104063+amanape@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:52:02 +0400 Subject: [PATCH] chore(frontend): Take into account other error message types (#6647) --- frontend/src/utils/retrieve-axios-error-message.ts | 12 ++++++++++-- frontend/src/utils/type-guards.ts | 10 +++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/frontend/src/utils/retrieve-axios-error-message.ts b/frontend/src/utils/retrieve-axios-error-message.ts index f24af0ef60ab..94097d59538a 100644 --- a/frontend/src/utils/retrieve-axios-error-message.ts +++ b/frontend/src/utils/retrieve-axios-error-message.ts @@ -1,5 +1,8 @@ import { AxiosError } from "axios"; -import { isAxiosErrorWithResponse } from "./type-guards"; +import { + isAxiosErrorWithErrorField, + isAxiosErrorWithMessageField, +} from "./type-guards"; /** * Retrieve the error message from an Axios error @@ -8,8 +11,13 @@ import { isAxiosErrorWithResponse } from "./type-guards"; export const retrieveAxiosErrorMessage = (error: AxiosError) => { let errorMessage: string | null = null; - if (isAxiosErrorWithResponse(error) && error.response?.data.error) { + if (isAxiosErrorWithErrorField(error) && error.response?.data.error) { errorMessage = error.response?.data.error; + } else if ( + isAxiosErrorWithMessageField(error) && + error.response?.data.message + ) { + errorMessage = error.response?.data.message; } else { errorMessage = error.message; } diff --git a/frontend/src/utils/type-guards.ts b/frontend/src/utils/type-guards.ts index 93b4b4a655a4..3d4f22e9da3e 100644 --- a/frontend/src/utils/type-guards.ts +++ b/frontend/src/utils/type-guards.ts @@ -1,9 +1,17 @@ import { AxiosError } from "axios"; -export const isAxiosErrorWithResponse = ( +export const isAxiosErrorWithErrorField = ( error: AxiosError, ): error is AxiosError<{ error: string }> => typeof error.response?.data === "object" && error.response?.data !== null && "error" in error.response.data && typeof error.response?.data?.error === "string"; + +export const isAxiosErrorWithMessageField = ( + error: AxiosError, +): error is AxiosError<{ message: string }> => + typeof error.response?.data === "object" && + error.response?.data !== null && + "message" in error.response.data && + typeof error.response?.data?.message === "string";