Files
super-app/App/common/utilities/ErrorUtils.ts

73 lines
1.8 KiB
TypeScript
Raw Permalink Normal View History

2024-10-24 11:52:11 +05:30
import {
AXIOS_CODE_CANCELED,
AXIOS_CODE_NETWORK,
2024-10-24 11:52:11 +05:30
AnalyticsGlobalErrorTypeConstant,
ERROR_INTERNET_SUBTITLE,
ERROR_INTERNET_TITLE,
ERROR_SUBTITLE,
ERROR_TITLE,
ImageName,
STATUS_CODE_NO_INTERNET,
} from "../constants";
import { ErrorResponse } from "../interface/components/ErrorResponse";
export const getErrorTypeFromStatusCode = (statusCode?: number) => {
const statusCodeforGenericError = [20, 23, 24, 401, 404];
if (
statusCode &&
(statusCodeforGenericError.includes(statusCode) || statusCode >= 500)
) {
return AnalyticsGlobalErrorTypeConstant.GLOBAL_GENERIC_ERRORS;
}
return AnalyticsGlobalErrorTypeConstant.GLOBAL_INTERNAL_ERRORS;
};
2024-10-24 11:52:11 +05:30
export const getErrorTitleFromError = (
statusCode?: number,
axiosCode?: string,
) => {
const statusCodeforInternetIssues = [20, 21, 23, 24];
if (
(statusCode && statusCodeforInternetIssues.includes(statusCode)) ||
axiosCode === AXIOS_CODE_NETWORK ||
axiosCode === AXIOS_CODE_CANCELED
) {
return ERROR_INTERNET_TITLE;
}
return ERROR_TITLE;
};
2024-10-24 11:52:11 +05:30
export const getErrorResponseFromStatusCode = (
statusCode?: number,
axiosCode?: string,
2024-10-24 11:52:11 +05:30
): ErrorResponse => {
switch (statusCode) {
case STATUS_CODE_NO_INTERNET:
return {
title: ERROR_INTERNET_TITLE,
subtitle: ERROR_INTERNET_SUBTITLE,
image: ImageName.NO_INTERNET,
};
default:
switch (axiosCode) {
case AXIOS_CODE_NETWORK:
case AXIOS_CODE_CANCELED:
return {
title: ERROR_INTERNET_TITLE,
subtitle: ERROR_INTERNET_SUBTITLE,
image: ImageName.NO_INTERNET,
};
default:
return {
title: ERROR_TITLE,
subtitle: ERROR_SUBTITLE,
image: ImageName.SWW,
};
}
2024-10-24 11:52:11 +05:30
}
};