mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-09-24 16:05:44 +08:00
Merge pull request #4297 from wp-a/fix/openai-reset-credit-malformed-details
fix(openai): preserve reset count on malformed details
This commit is contained in:
@@ -59,7 +59,7 @@ func parseOpenAIRateLimitResetCreditDetails(body []byte) (openAIRateLimitResetCr
|
||||
payload.Data,
|
||||
)
|
||||
if err != nil {
|
||||
return openAIRateLimitResetCreditDetails{}, err
|
||||
return openAIRateLimitResetCreditDetails{AvailableCount: availableCount}, err
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -82,6 +82,19 @@ func TestQueryUsageResetCreditCountPrecedence(t *testing.T) {
|
||||
wantCount: 5,
|
||||
wantCredits: 1,
|
||||
},
|
||||
{
|
||||
name: "valid detail count survives malformed authoritative list",
|
||||
usageBody: `{"rate_limit_reset_credits":{"available_count":7,"credits":[{"expires_at":"usage-expiry"}]}}`,
|
||||
detailBody: `{"available_count":2,"credits":"malformed"}`,
|
||||
wantCount: 2,
|
||||
wantCredits: 1,
|
||||
},
|
||||
{
|
||||
name: "valid detail count creates quota despite malformed authoritative list",
|
||||
usageBody: `{}`,
|
||||
detailBody: `{"available_count":2,"credits":"malformed"}`,
|
||||
wantCount: 2,
|
||||
},
|
||||
{
|
||||
name: "negative detail count without list preserves usage",
|
||||
usageBody: `{"rate_limit_reset_credits":{"available_count":4}}`,
|
||||
|
||||
@@ -230,7 +230,9 @@ func (s *OpenAIQuotaService) queryResetCreditDetails(ctx context.Context, client
|
||||
details, err := parseOpenAIRateLimitResetCreditDetails(resp.Bytes())
|
||||
if err != nil {
|
||||
slog.Warn("openai_quota_reset_credit_details_parse_failed", "account_id", accountID, "error", err)
|
||||
return nil
|
||||
if details.AvailableCount == nil {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
if details.AvailableCount == nil && !details.CreditListPresent {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user