refactor: simplify request exception handling (#4129)

#### What type of PR is this?

/kind improvement
/area console
/milestone 2.7.x

#### What this PR does / why we need it:

简化请求异常提示的逻辑。

#### Does this PR introduce a user-facing change?

```release-note
None
```
pull/4126/head^2
Ryan Wang 2023-06-28 14:44:12 +08:00 committed by GitHub
parent d0526ec592
commit 02e7068ee0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 33 deletions

View File

@ -95,7 +95,7 @@ const handleLogin = async () => {
const { title: errorTitle, detail: errorDetail } = e.response?.data || {};
if (errorTitle || errorDetail) {
Toast.error([errorTitle, errorDetail].filter(Boolean).join(" - "));
Toast.error(errorDetail || errorTitle);
} else {
Toast.error(t("core.common.toast.unknown_error"));
}

View File

@ -1168,13 +1168,10 @@ core:
save_failed_and_retry: "Failed to save, please retry"
publish_failed_and_retry: "Failed to publish, please retry"
network_error: "Network error, please check your connection"
request_parameter_error: "Request parameter error: {title}"
login_expired: "Login expired, please log in again"
forbidden: Access denied
not_found: Resource not found
server_internal_error_with_title: "Internal server error: {title}"
server_internal_error: Internal server error
unknown_error_with_title: "Unknown error: {title}"
unknown_error: Unknown error
dialog:
titles:

View File

@ -1168,13 +1168,10 @@ core:
save_failed_and_retry: 保存失败,请重试
publish_failed_and_retry: 发布失败,请重试
network_error: 网络错误,请检查网络连接
request_parameter_error: 请求参数错误:{title}
login_expired: 登录已过期,请重新登录
forbidden: 无权限访问
not_found: 资源不存在
server_internal_error_with_title: 服务器内部错误:{title}
server_internal_error: 服务器内部错误
unknown_error_with_title: 未知错误:{title}
unknown_error: 未知错误
dialog:
titles:

View File

@ -1168,13 +1168,10 @@ core:
save_failed_and_retry: 保存失敗,請重試
publish_failed_and_retry: 發布失敗,請重試
network_error: 網絡錯誤,請檢查網絡連接
request_parameter_error: 請求參數錯誤:{title}
login_expired: 登入已過期,請重新登入
forbidden: 無權限訪問
not_found: 資源不存在
server_internal_error_with_title: 伺服器內部錯誤:{title}
server_internal_error: 伺服器內部錯誤
unknown_error_with_title: 未知錯誤:{title}
unknown_error: 未知錯誤
dialog:
titles:

View File

@ -78,40 +78,30 @@ axiosInstance.interceptors.response.use(
return Promise.reject(error);
}
const { status } = errorResponse;
const { title } = errorResponse.data;
// Don't show error toast
// see https://github.com/halo-dev/halo/issues/2836
if (errorResponse.config.mute) {
return Promise.reject(error);
}
if (status === 400) {
Toast.error(
i18n.global.t("core.common.toast.request_parameter_error", { title })
);
} else if (status === 401) {
const { status } = errorResponse;
const { title, detail } = errorResponse.data;
if (status === 401) {
const userStore = useUserStore();
userStore.loginModalVisible = true;
Toast.warning(i18n.global.t("core.common.toast.login_expired"));
} else if (status === 403) {
Toast.error(i18n.global.t("core.common.toast.forbidden"));
} else if (status === 404) {
Toast.error(i18n.global.t("core.common.toast.not_found"));
} else if (status === 500) {
Toast.error(
i18n.global.t("core.common.toast.server_internal_error_with_title")
);
} else {
Toast.error(
i18n.global.t("core.common.toast.unknown_error_with_title", {
title,
})
);
return Promise.reject(error);
}
if (title || detail) {
Toast.error(detail || title);
return Promise.reject(error);
}
Toast.error(i18n.global.t("core.common.toast.unknown_error"));
return Promise.reject(error);
}
);