65 lines
2.4 KiB
JavaScript
65 lines
2.4 KiB
JavaScript
import Notifications from "@/core/components/notifications";
|
|
|
|
export const errorSetting = (dismissToastList, t, notification) => {
|
|
if (notification) {
|
|
dismissToastList(["pending", "warning", "error", "success"])
|
|
}
|
|
}
|
|
export const errorRequest = (dismissToastList, t, notification) => {
|
|
if (notification) {
|
|
dismissToastList(["pending", "warning", "error", "success"])
|
|
}
|
|
}
|
|
|
|
export const errorResponse = (pushToastList, dismissToastList, response, clearToken, t, notification) => {
|
|
if (notification) {
|
|
dismissToastList(["pending", "warning", "error", "success"])
|
|
}
|
|
if (isServerError(response.status)) {
|
|
errorServer(pushToastList, response, t, notification)
|
|
} else if (isClientError(response.status)) {
|
|
errorClient(pushToastList, response, clearToken, t, notification)
|
|
}
|
|
}
|
|
|
|
const errorServer = (pushToastList, response, t, notification) => {
|
|
if (notification) Notifications(pushToastList, "warning", t, response.status);
|
|
}
|
|
const errorClient = (pushToastList, response, clearToken, t, notification) => {
|
|
switch (response.status) {
|
|
case 401:
|
|
clearToken()
|
|
if (notification) Notifications(pushToastList, "error", t, response.status);
|
|
break;
|
|
case 422:
|
|
if ('type' in response.data) {
|
|
errorLogic(pushToastList, response, t, notification)
|
|
break;
|
|
}
|
|
errorValidation(pushToastList, response, t, notification)
|
|
break;
|
|
case 429:
|
|
if (notification) Notifications(pushToastList, "error", t, response.status);
|
|
break
|
|
default:
|
|
if (notification) Notifications(pushToastList, "error", t, response.status);
|
|
break
|
|
}
|
|
}
|
|
|
|
const isServerError = status => status >= 500 && status <= 599;
|
|
const isClientError = status => status >= 400 && status <= 499;
|
|
|
|
const errorLogic = (pushToastList, response, t, notification) => {
|
|
if (notification) Notifications(pushToastList, "error", t, response.status, response.data.message);
|
|
}
|
|
const errorValidation = (pushToastList, response, t, notification) => {
|
|
if (notification) {
|
|
const errorsMap = Object.keys(response.data.errors)
|
|
const errorsArray = response.data.errors
|
|
|
|
errorsMap.map((item, index) => {
|
|
Notifications(pushToastList, "error", t, errorsArray[item][0], response.data.message);
|
|
})
|
|
}
|
|
} |