| import axios from 'axios' |
| import { getOauthConfig } from '../../constants/oauth.js' |
| import { isClaudeAISubscriber } from '../../utils/auth.js' |
| import { logForDebugging } from '../../utils/debug.js' |
| import { getOAuthHeaders, prepareApiRequest } from '../../utils/teleport/api.js' |
|
|
| export type UltrareviewQuotaResponse = { |
| reviews_used: number |
| reviews_limit: number |
| reviews_remaining: number |
| is_overage: boolean |
| } |
|
|
| |
| |
| |
| |
| |
| export async function fetchUltrareviewQuota(): Promise<UltrareviewQuotaResponse | null> { |
| if (!isClaudeAISubscriber()) return null |
| try { |
| const { accessToken, orgUUID } = await prepareApiRequest() |
| const response = await axios.get<UltrareviewQuotaResponse>( |
| `${getOauthConfig().BASE_API_URL}/v1/ultrareview/quota`, |
| { |
| headers: { |
| ...getOAuthHeaders(accessToken), |
| 'x-organization-uuid': orgUUID, |
| }, |
| timeout: 5000, |
| }, |
| ) |
| return response.data |
| } catch (error) { |
| logForDebugging(`fetchUltrareviewQuota failed: ${error}`) |
| return null |
| } |
| } |
|
|