优化
This commit is contained in:
+18
-5
@@ -113,7 +113,14 @@ export function unwrapApiResponse<T>(response: ApiEnvelope<T>): T {
|
||||
|
||||
export function getApiErrorDetails(error: unknown, fallback = '接口请求失败'): ApiErrorDetails {
|
||||
if (error instanceof ApiResponseError) {
|
||||
return { message: error.message, code: error.code, requestId: error.requestId, traceId: error.traceId }
|
||||
const message = error.code === 'A0401'
|
||||
? '登录状态已失效,请重新登录'
|
||||
: error.code === 'A0403'
|
||||
? '当前账号无权访问该数据,请联系管理员确认权限'
|
||||
: error.code.startsWith('S05')
|
||||
? '服务暂时不可用,请稍后重试'
|
||||
: error.message
|
||||
return { message, code: error.code, requestId: error.requestId, traceId: error.traceId }
|
||||
}
|
||||
if (axios.isAxiosError(error)) {
|
||||
const response = error.response?.data as {
|
||||
@@ -124,11 +131,17 @@ export function getApiErrorDetails(error: unknown, fallback = '接口请求失
|
||||
traceId?: string | null
|
||||
} | undefined
|
||||
const status = error.response?.status
|
||||
const statusMessage = status === 413
|
||||
? '上传文件的请求体过大,服务器已拒绝;请压缩后重试,如文件未超过 5MB,请联系管理员检查网关上传限制'
|
||||
: undefined
|
||||
const statusMessage = status === 401
|
||||
? '登录状态已失效,请重新登录'
|
||||
: status === 403
|
||||
? '当前账号无权访问该数据,请联系管理员确认权限'
|
||||
: status === 413
|
||||
? '上传文件的请求体过大,服务器已拒绝;请压缩后重试,如文件未超过 5MB,请联系管理员检查网关上传限制'
|
||||
: status && status >= 500
|
||||
? '服务暂时不可用,请稍后重试'
|
||||
: undefined
|
||||
return {
|
||||
message: response?.message || response?.error || statusMessage || fallback,
|
||||
message: statusMessage || response?.message || response?.error || fallback,
|
||||
code: response?.code || (error.response?.status ? `HTTP_${error.response.status}` : undefined),
|
||||
requestId: response?.requestId || undefined,
|
||||
traceId: response?.traceId || undefined,
|
||||
|
||||
Reference in New Issue
Block a user