抽取客户端 API 错误状态采集
统一普通与二进制请求的服务端错误报告逻辑
This commit is contained in:
@@ -57,6 +57,16 @@ async function readApiErrorMessage(response: Response, fallback: string) {
|
||||
return fallback;
|
||||
}
|
||||
|
||||
function captureApiErrorStatus(url: string, response: Response) {
|
||||
if (response.status < 500 && response.status !== 408) return;
|
||||
void captureClientError(
|
||||
new ClientAuthRequestError(`HTTP ${response.status}`, {
|
||||
status: response.status,
|
||||
}),
|
||||
{ source: 'api', action: url.split('?')[0] },
|
||||
);
|
||||
}
|
||||
|
||||
export async function requestClientApi<T>(
|
||||
url: string,
|
||||
init: RequestInit,
|
||||
@@ -89,15 +99,7 @@ export async function requestClientApi<T>(
|
||||
);
|
||||
}
|
||||
if (!response.ok) {
|
||||
const shouldCapture = response.status >= 500 || response.status === 408;
|
||||
if (shouldCapture) {
|
||||
void captureClientError(
|
||||
new ClientAuthRequestError(`HTTP ${response.status}`, {
|
||||
status: response.status,
|
||||
}),
|
||||
{ source: 'api', action: url.split('?')[0] },
|
||||
);
|
||||
}
|
||||
captureApiErrorStatus(url, response);
|
||||
throw new ClientAuthRequestError(
|
||||
await readApiErrorMessage(response, fallbackMessage),
|
||||
{ status: response.status },
|
||||
@@ -141,15 +143,7 @@ export async function requestClientApiBytes(
|
||||
);
|
||||
}
|
||||
if (!response.ok) {
|
||||
const shouldCapture = response.status >= 500 || response.status === 408;
|
||||
if (shouldCapture) {
|
||||
void captureClientError(
|
||||
new ClientAuthRequestError(`HTTP ${response.status}`, {
|
||||
status: response.status,
|
||||
}),
|
||||
{ source: 'api', action: url.split('?')[0] },
|
||||
);
|
||||
}
|
||||
captureApiErrorStatus(url, response);
|
||||
throw new ClientAuthRequestError(
|
||||
await readApiErrorMessage(response, fallbackMessage),
|
||||
{ status: response.status },
|
||||
|
||||
Reference in New Issue
Block a user