mirror of
https://github.com/router-for-me/Cli-Proxy-API-Management-Center.git
synced 2026-02-21 12:10:51 +08:00
fix(antigravity): enhance error handling and support multiple request bodies
This commit is contained in:
@@ -116,6 +116,11 @@ const resolveAntigravityProjectId = async (file: AuthFileItem): Promise<string>
|
||||
return DEFAULT_ANTIGRAVITY_PROJECT_ID;
|
||||
};
|
||||
|
||||
const isAntigravityUnknownFieldError = (message: string): boolean => {
|
||||
const normalized = message.toLowerCase();
|
||||
return normalized.includes('unknown name') && normalized.includes('cannot find field');
|
||||
};
|
||||
|
||||
const fetchAntigravityQuota = async (
|
||||
file: AuthFileItem,
|
||||
t: TFunction
|
||||
@@ -127,7 +132,7 @@ const fetchAntigravityQuota = async (
|
||||
}
|
||||
|
||||
const projectId = await resolveAntigravityProjectId(file);
|
||||
const requestBody = JSON.stringify({ project_id: projectId });
|
||||
const requestBodies = [JSON.stringify({ projectId }), JSON.stringify({ project: projectId })];
|
||||
|
||||
let lastError = '';
|
||||
let lastStatus: number | undefined;
|
||||
@@ -135,13 +140,14 @@ const fetchAntigravityQuota = async (
|
||||
let hadSuccess = false;
|
||||
|
||||
for (const url of ANTIGRAVITY_QUOTA_URLS) {
|
||||
for (let attempt = 0; attempt < requestBodies.length; attempt++) {
|
||||
try {
|
||||
const result = await apiCallApi.request({
|
||||
authIndex,
|
||||
method: 'POST',
|
||||
url,
|
||||
header: { ...ANTIGRAVITY_REQUEST_HEADERS },
|
||||
data: requestBody
|
||||
data: requestBodies[attempt]
|
||||
});
|
||||
|
||||
if (result.statusCode < 200 || result.statusCode >= 300) {
|
||||
@@ -150,8 +156,15 @@ const fetchAntigravityQuota = async (
|
||||
if (result.statusCode === 403 || result.statusCode === 404) {
|
||||
priorityStatus ??= result.statusCode;
|
||||
}
|
||||
if (
|
||||
result.statusCode === 400 &&
|
||||
isAntigravityUnknownFieldError(lastError) &&
|
||||
attempt < requestBodies.length - 1
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
hadSuccess = true;
|
||||
const payload = parseAntigravityPayload(result.body ?? result.bodyText);
|
||||
@@ -179,6 +192,7 @@ const fetchAntigravityQuota = async (
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (hadSuccess) {
|
||||
return [];
|
||||
|
||||
Reference in New Issue
Block a user