2023-06-06 10:02:17 +00:00
|
|
|
import { isAxiosError } from "axios";
|
|
|
|
|
|
|
|
|
2023-06-24 10:50:00 +00:00
|
|
|
const translateMessage: Record<string, string> = {
|
2023-06-06 10:02:17 +00:00
|
|
|
"user not found": "Пользователь не найден",
|
|
|
|
"invalid password": "Неправильный пароль",
|
|
|
|
"field <password> is empty": "Поле \"Пароль\" не заполнено",
|
|
|
|
"field <login> is empty": "Поле \"Логин\" не заполнено",
|
|
|
|
"field <email> is empty": "Поле \"E-mail\" не заполнено",
|
|
|
|
"field <phoneNumber> is empty": "Поле \"Номер телефона\" не заполнено",
|
|
|
|
"user with this email or login is exist": "Пользователь уже существует",
|
|
|
|
};
|
|
|
|
|
2023-06-24 10:50:00 +00:00
|
|
|
export function getMessageFromFetchError(error: any, defaultMessage = "Что-то пошло не так. Повторите попытку позже"): string | null {
|
|
|
|
const rawMessage = error.response?.data?.message;
|
|
|
|
|
|
|
|
const translatedMessage = translateMessage[rawMessage];
|
|
|
|
if (translatedMessage) return translatedMessage;
|
2023-06-06 10:02:17 +00:00
|
|
|
|
|
|
|
if (isAxiosError(error)) {
|
|
|
|
switch (error.code) {
|
|
|
|
case "ERR_NETWORK": return "Ошибка сети";
|
|
|
|
case "ERR_CANCELED": return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-06-24 10:50:00 +00:00
|
|
|
if (process.env.NODE_ENV === "development") return rawMessage ?? error.message ?? defaultMessage;
|
|
|
|
|
|
|
|
return defaultMessage;
|
2023-08-14 12:03:23 +00:00
|
|
|
}
|