mirror of https://github.com/halo-dev/halo
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
parent
d0526ec592
commit
02e7068ee0
|
@ -95,7 +95,7 @@ const handleLogin = async () => {
|
||||||
const { title: errorTitle, detail: errorDetail } = e.response?.data || {};
|
const { title: errorTitle, detail: errorDetail } = e.response?.data || {};
|
||||||
|
|
||||||
if (errorTitle || errorDetail) {
|
if (errorTitle || errorDetail) {
|
||||||
Toast.error([errorTitle, errorDetail].filter(Boolean).join(" - "));
|
Toast.error(errorDetail || errorTitle);
|
||||||
} else {
|
} else {
|
||||||
Toast.error(t("core.common.toast.unknown_error"));
|
Toast.error(t("core.common.toast.unknown_error"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1168,13 +1168,10 @@ core:
|
||||||
save_failed_and_retry: "Failed to save, please retry"
|
save_failed_and_retry: "Failed to save, please retry"
|
||||||
publish_failed_and_retry: "Failed to publish, please retry"
|
publish_failed_and_retry: "Failed to publish, please retry"
|
||||||
network_error: "Network error, please check your connection"
|
network_error: "Network error, please check your connection"
|
||||||
request_parameter_error: "Request parameter error: {title}"
|
|
||||||
login_expired: "Login expired, please log in again"
|
login_expired: "Login expired, please log in again"
|
||||||
forbidden: Access denied
|
forbidden: Access denied
|
||||||
not_found: Resource not found
|
not_found: Resource not found
|
||||||
server_internal_error_with_title: "Internal server error: {title}"
|
|
||||||
server_internal_error: Internal server error
|
server_internal_error: Internal server error
|
||||||
unknown_error_with_title: "Unknown error: {title}"
|
|
||||||
unknown_error: Unknown error
|
unknown_error: Unknown error
|
||||||
dialog:
|
dialog:
|
||||||
titles:
|
titles:
|
||||||
|
|
|
@ -1168,13 +1168,10 @@ core:
|
||||||
save_failed_and_retry: 保存失败,请重试
|
save_failed_and_retry: 保存失败,请重试
|
||||||
publish_failed_and_retry: 发布失败,请重试
|
publish_failed_and_retry: 发布失败,请重试
|
||||||
network_error: 网络错误,请检查网络连接
|
network_error: 网络错误,请检查网络连接
|
||||||
request_parameter_error: 请求参数错误:{title}
|
|
||||||
login_expired: 登录已过期,请重新登录
|
login_expired: 登录已过期,请重新登录
|
||||||
forbidden: 无权限访问
|
forbidden: 无权限访问
|
||||||
not_found: 资源不存在
|
not_found: 资源不存在
|
||||||
server_internal_error_with_title: 服务器内部错误:{title}
|
|
||||||
server_internal_error: 服务器内部错误
|
server_internal_error: 服务器内部错误
|
||||||
unknown_error_with_title: 未知错误:{title}
|
|
||||||
unknown_error: 未知错误
|
unknown_error: 未知错误
|
||||||
dialog:
|
dialog:
|
||||||
titles:
|
titles:
|
||||||
|
|
|
@ -1168,13 +1168,10 @@ core:
|
||||||
save_failed_and_retry: 保存失敗,請重試
|
save_failed_and_retry: 保存失敗,請重試
|
||||||
publish_failed_and_retry: 發布失敗,請重試
|
publish_failed_and_retry: 發布失敗,請重試
|
||||||
network_error: 網絡錯誤,請檢查網絡連接
|
network_error: 網絡錯誤,請檢查網絡連接
|
||||||
request_parameter_error: 請求參數錯誤:{title}
|
|
||||||
login_expired: 登入已過期,請重新登入
|
login_expired: 登入已過期,請重新登入
|
||||||
forbidden: 無權限訪問
|
forbidden: 無權限訪問
|
||||||
not_found: 資源不存在
|
not_found: 資源不存在
|
||||||
server_internal_error_with_title: 伺服器內部錯誤:{title}
|
|
||||||
server_internal_error: 伺服器內部錯誤
|
server_internal_error: 伺服器內部錯誤
|
||||||
unknown_error_with_title: 未知錯誤:{title}
|
|
||||||
unknown_error: 未知錯誤
|
unknown_error: 未知錯誤
|
||||||
dialog:
|
dialog:
|
||||||
titles:
|
titles:
|
||||||
|
|
|
@ -78,40 +78,30 @@ axiosInstance.interceptors.response.use(
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
const { status } = errorResponse;
|
|
||||||
|
|
||||||
const { title } = errorResponse.data;
|
|
||||||
|
|
||||||
// Don't show error toast
|
// Don't show error toast
|
||||||
// see https://github.com/halo-dev/halo/issues/2836
|
// see https://github.com/halo-dev/halo/issues/2836
|
||||||
if (errorResponse.config.mute) {
|
if (errorResponse.config.mute) {
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status === 400) {
|
const { status } = errorResponse;
|
||||||
Toast.error(
|
const { title, detail } = errorResponse.data;
|
||||||
i18n.global.t("core.common.toast.request_parameter_error", { title })
|
|
||||||
);
|
if (status === 401) {
|
||||||
} else if (status === 401) {
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
userStore.loginModalVisible = true;
|
userStore.loginModalVisible = true;
|
||||||
Toast.warning(i18n.global.t("core.common.toast.login_expired"));
|
Toast.warning(i18n.global.t("core.common.toast.login_expired"));
|
||||||
} else if (status === 403) {
|
|
||||||
Toast.error(i18n.global.t("core.common.toast.forbidden"));
|
return Promise.reject(error);
|
||||||
} 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,
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue