Add network error catch

This commit is contained in:
jeffvli 2023-11-16 23:35:26 -08:00
parent fdfbad68e2
commit ccd8d2b6b0
4 changed files with 29 additions and 5 deletions

View File

@ -144,6 +144,7 @@
"localFontAccessDenied": "access denied to local fonts",
"loginRateError": "too many login attempts, please try again in a few seconds",
"mpvRequired": "MPV required",
"networkError": "a network error occurred",
"playbackError": "an error occurred when trying to play the media",
"remoteDisableError": "an error occurred when trying to $t(common.disable) the remote server",
"remoteEnableError": "an error occurred when trying to $t(common.enable) the remote server",

View File

@ -7,6 +7,7 @@ import { ServerListItem } from '/@/renderer/types';
import omitBy from 'lodash/omitBy';
import { z } from 'zod';
import { authenticationFailure } from '/@/renderer/api/utils';
import i18n from '/@/i18n/i18n';
const c = initContract();
@ -337,6 +338,14 @@ export const jfApiClient = (args: {
};
} catch (e: Error | AxiosError | any) {
if (isAxiosError(e)) {
if (e.code === 'ERR_NETWORK') {
throw new Error(
i18n.t('error.networkError', {
postProcess: 'sentenceCase',
}) as string,
);
}
const error = e as AxiosError;
const response = error.response as AxiosResponse;
return {

View File

@ -380,12 +380,20 @@ export const ndApiClient = (args: {
};
} catch (e: Error | AxiosError | any) {
if (isAxiosError(e)) {
if (e.code === 'ERR_NETWORK') {
throw new Error(
i18n.t('error.networkError', {
postProcess: 'sentenceCase',
}) as string,
);
}
const error = e as AxiosError;
const response = error.response as AxiosResponse;
return {
body: { data: response.data, headers: response.headers },
headers: response.headers as any,
status: response.status,
body: { data: response?.data, headers: response?.headers },
headers: response?.headers as any,
status: response?.status,
};
}
throw e;

View File

@ -185,9 +185,15 @@ export const ssApiClient = (args: {
status: result.status,
};
} catch (e: Error | AxiosError | any) {
console.log('CATCH ERR');
if (isAxiosError(e)) {
if (e.code === 'ERR_NETWORK') {
throw new Error(
i18n.t('error.networkError', {
postProcess: 'sentenceCase',
}) as string,
);
}
const error = e as AxiosError;
const response = error.response as AxiosResponse;