diff --git a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js index eb486cc0..c55633c2 100644 --- a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js +++ b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js @@ -216,7 +216,7 @@ export default function ProviderLimits() { ); // Fetch quota for a specific connection - const fetchQuota = useCallback(async (connectionId, provider) => { + const fetchQuota = useCallback(async (connectionId, provider, { force = false } = {}) => { setLoading((prev) => ({ ...prev, [connectionId]: true })); setErrors((prev) => ({ ...prev, [connectionId]: null })); @@ -224,7 +224,8 @@ export default function ProviderLimits() { console.log( `[ProviderLimits] Fetching quota for ${provider} (${connectionId})`, ); - const response = await fetch(`/api/usage/${connectionId}`); + const url = `/api/usage/${connectionId}${force ? "?force=1" : ""}`; + const response = await fetch(url); if (!response.ok) { const errorData = await response.json().catch(() => ({})); @@ -295,7 +296,7 @@ export default function ProviderLimits() { // Refresh quota for a specific provider const refreshProvider = useCallback( async (connectionId, provider) => { - await fetchQuota(connectionId, provider); + await fetchQuota(connectionId, provider, { force: true }); setLastUpdated(new Date()); }, [fetchQuota], diff --git a/src/app/api/usage/[connectionId]/route.js b/src/app/api/usage/[connectionId]/route.js index 8ccdc015..84dd7674 100644 --- a/src/app/api/usage/[connectionId]/route.js +++ b/src/app/api/usage/[connectionId]/route.js @@ -123,6 +123,7 @@ export async function GET(request, { params }) { let connection; try { const { connectionId } = await params; + const force = new URL(request.url).searchParams.get("force") === "1"; // Get connection from database @@ -168,7 +169,7 @@ export async function GET(request, { params }) { } // Fetch usage from provider API - let usage = await getUsageForProvider(connection, proxyOptions); + let usage = await getUsageForProvider(connection, proxyOptions, { force }); // If provider returned an auth-expired message instead of throwing, // force-refresh token and retry once (OAuth only) @@ -176,7 +177,7 @@ export async function GET(request, { params }) { try { const retryResult = await refreshAndUpdateCredentials(connection, true, proxyOptions); connection = retryResult.connection; - usage = await getUsageForProvider(connection, proxyOptions); + usage = await getUsageForProvider(connection, proxyOptions, { force }); } catch (retryError) { console.warn(`[Usage] ${connection.provider}: force refresh failed: ${retryError.message}`); }