diff --git a/frontend/src/api/admin/accounts.ts b/frontend/src/api/admin/accounts.ts index 329fe74a..99146bf2 100644 --- a/frontend/src/api/admin/accounts.ts +++ b/frontend/src/api/admin/accounts.ts @@ -3,7 +3,7 @@ * Handles AI platform account management for administrators */ -import { apiClient } from '../client'; +import { apiClient } from '../client' import type { Account, CreateAccountRequest, @@ -13,7 +13,7 @@ import type { WindowStats, ClaudeModel, AccountUsageStatsResponse, -} from '@/types'; +} from '@/types' /** * List all accounts with pagination @@ -26,10 +26,10 @@ export async function list( page: number = 1, pageSize: number = 20, filters?: { - platform?: string; - type?: string; - status?: string; - search?: string; + platform?: string + type?: string + status?: string + search?: string } ): Promise> { const { data } = await apiClient.get>('/admin/accounts', { @@ -38,8 +38,8 @@ export async function list( page_size: pageSize, ...filters, }, - }); - return data; + }) + return data } /** @@ -48,8 +48,8 @@ export async function list( * @returns Account details */ export async function getById(id: number): Promise { - const { data } = await apiClient.get(`/admin/accounts/${id}`); - return data; + const { data } = await apiClient.get(`/admin/accounts/${id}`) + return data } /** @@ -58,8 +58,8 @@ export async function getById(id: number): Promise { * @returns Created account */ export async function create(accountData: CreateAccountRequest): Promise { - const { data } = await apiClient.post('/admin/accounts', accountData); - return data; + const { data } = await apiClient.post('/admin/accounts', accountData) + return data } /** @@ -69,8 +69,8 @@ export async function create(accountData: CreateAccountRequest): Promise { - const { data } = await apiClient.put(`/admin/accounts/${id}`, updates); - return data; + const { data } = await apiClient.put(`/admin/accounts/${id}`, updates) + return data } /** @@ -79,8 +79,8 @@ export async function update(id: number, updates: UpdateAccountRequest): Promise * @returns Success confirmation */ export async function deleteAccount(id: number): Promise<{ message: string }> { - const { data } = await apiClient.delete<{ message: string }>(`/admin/accounts/${id}`); - return data; + const { data } = await apiClient.delete<{ message: string }>(`/admin/accounts/${id}`) + return data } /** @@ -89,11 +89,8 @@ export async function deleteAccount(id: number): Promise<{ message: string }> { * @param status - New status * @returns Updated account */ -export async function toggleStatus( - id: number, - status: 'active' | 'inactive' -): Promise { - return update(id, { status }); +export async function toggleStatus(id: number, status: 'active' | 'inactive'): Promise { + return update(id, { status }) } /** @@ -102,16 +99,16 @@ export async function toggleStatus( * @returns Test result */ export async function testAccount(id: number): Promise<{ - success: boolean; - message: string; - latency_ms?: number; + success: boolean + message: string + latency_ms?: number }> { const { data } = await apiClient.post<{ - success: boolean; - message: string; - latency_ms?: number; - }>(`/admin/accounts/${id}/test`); - return data; + success: boolean + message: string + latency_ms?: number + }>(`/admin/accounts/${id}/test`) + return data } /** @@ -120,8 +117,8 @@ export async function testAccount(id: number): Promise<{ * @returns Updated account */ export async function refreshCredentials(id: number): Promise { - const { data } = await apiClient.post(`/admin/accounts/${id}/refresh`); - return data; + const { data } = await apiClient.post(`/admin/accounts/${id}/refresh`) + return data } /** @@ -133,8 +130,8 @@ export async function refreshCredentials(id: number): Promise { export async function getStats(id: number, days: number = 30): Promise { const { data } = await apiClient.get(`/admin/accounts/${id}/stats`, { params: { days }, - }); - return data; + }) + return data } /** @@ -143,8 +140,8 @@ export async function getStats(id: number, days: number = 30): Promise { - const { data } = await apiClient.post(`/admin/accounts/${id}/clear-error`); - return data; + const { data } = await apiClient.post(`/admin/accounts/${id}/clear-error`) + return data } /** @@ -153,8 +150,8 @@ export async function clearError(id: number): Promise { * @returns Account usage info */ export async function getUsage(id: number): Promise { - const { data } = await apiClient.get(`/admin/accounts/${id}/usage`); - return data; + const { data } = await apiClient.get(`/admin/accounts/${id}/usage`) + return data } /** @@ -163,8 +160,10 @@ export async function getUsage(id: number): Promise { * @returns Success confirmation */ export async function clearRateLimit(id: number): Promise<{ message: string }> { - const { data } = await apiClient.post<{ message: string }>(`/admin/accounts/${id}/clear-rate-limit`); - return data; + const { data } = await apiClient.post<{ message: string }>( + `/admin/accounts/${id}/clear-rate-limit` + ) + return data } /** @@ -177,8 +176,8 @@ export async function generateAuthUrl( endpoint: string, config: { proxy_id?: number } ): Promise<{ auth_url: string; session_id: string }> { - const { data } = await apiClient.post<{ auth_url: string; session_id: string }>(endpoint, config); - return data; + const { data } = await apiClient.post<{ auth_url: string; session_id: string }>(endpoint, config) + return data } /** @@ -191,8 +190,8 @@ export async function exchangeCode( endpoint: string, exchangeData: { session_id: string; code: string; proxy_id?: number } ): Promise> { - const { data } = await apiClient.post>(endpoint, exchangeData); - return data; + const { data } = await apiClient.post>(endpoint, exchangeData) + return data } /** @@ -201,16 +200,16 @@ export async function exchangeCode( * @returns Results of batch creation */ export async function batchCreate(accounts: CreateAccountRequest[]): Promise<{ - success: number; - failed: number; - results: Array<{ success: boolean; account?: Account; error?: string }>; + success: number + failed: number + results: Array<{ success: boolean; account?: Account; error?: string }> }> { const { data } = await apiClient.post<{ - success: number; - failed: number; - results: Array<{ success: boolean; account?: Account; error?: string }>; - }>('/admin/accounts/batch', { accounts }); - return data; + success: number + failed: number + results: Array<{ success: boolean; account?: Account; error?: string }> + }>('/admin/accounts/batch', { accounts }) + return data } /** @@ -219,20 +218,20 @@ export async function batchCreate(accounts: CreateAccountRequest[]): Promise<{ * @returns Results of batch update */ export async function batchUpdateCredentials(request: { - account_ids: number[]; - field: string; - value: any; + account_ids: number[] + field: string + value: any }): Promise<{ - success: number; - failed: number; - results: Array<{ account_id: number; success: boolean; error?: string }>; + success: number + failed: number + results: Array<{ account_id: number; success: boolean; error?: string }> }> { - const { data} = await apiClient.post<{ - success: number; - failed: number; - results: Array<{ account_id: number; success: boolean; error?: string }>; - }>('/admin/accounts/batch-update-credentials', request); - return data; + const { data } = await apiClient.post<{ + success: number + failed: number + results: Array<{ account_id: number; success: boolean; error?: string }> + }>('/admin/accounts/batch-update-credentials', request) + return data } /** @@ -245,19 +244,19 @@ export async function bulkUpdate( accountIds: number[], updates: Record ): Promise<{ - success: number; - failed: number; - results: Array<{ account_id: number; success: boolean; error?: string }>; + success: number + failed: number + results: Array<{ account_id: number; success: boolean; error?: string }> }> { const { data } = await apiClient.post<{ - success: number; - failed: number; - results: Array<{ account_id: number; success: boolean; error?: string }>; + success: number + failed: number + results: Array<{ account_id: number; success: boolean; error?: string }> }>('/admin/accounts/bulk-update', { account_ids: accountIds, - ...updates - }); - return data; + ...updates, + }) + return data } /** @@ -266,8 +265,8 @@ export async function bulkUpdate( * @returns Today's stats (requests, tokens, cost) */ export async function getTodayStats(id: number): Promise { - const { data } = await apiClient.get(`/admin/accounts/${id}/today-stats`); - return data; + const { data } = await apiClient.get(`/admin/accounts/${id}/today-stats`) + return data } /** @@ -277,8 +276,10 @@ export async function getTodayStats(id: number): Promise { * @returns Updated account */ export async function setSchedulable(id: number, schedulable: boolean): Promise { - const { data } = await apiClient.post(`/admin/accounts/${id}/schedulable`, { schedulable }); - return data; + const { data } = await apiClient.post(`/admin/accounts/${id}/schedulable`, { + schedulable, + }) + return data } /** @@ -287,30 +288,30 @@ export async function setSchedulable(id: number, schedulable: boolean): Promise< * @returns List of available models for this account */ export async function getAvailableModels(id: number): Promise { - const { data } = await apiClient.get(`/admin/accounts/${id}/models`); - return data; + const { data } = await apiClient.get(`/admin/accounts/${id}/models`) + return data } export async function syncFromCrs(params: { - base_url: string; - username: string; - password: string; - sync_proxies?: boolean; + base_url: string + username: string + password: string + sync_proxies?: boolean }): Promise<{ - created: number; - updated: number; - skipped: number; - failed: number; + created: number + updated: number + skipped: number + failed: number items: Array<{ - crs_account_id: string; - kind: string; - name: string; - action: string; - error?: string; - }>; + crs_account_id: string + kind: string + name: string + action: string + error?: string + }> }> { - const { data } = await apiClient.post('/admin/accounts/sync/crs', params); - return data; + const { data } = await apiClient.post('/admin/accounts/sync/crs', params) + return data } export const accountsAPI = { @@ -335,6 +336,6 @@ export const accountsAPI = { batchUpdateCredentials, bulkUpdate, syncFromCrs, -}; +} -export default accountsAPI; +export default accountsAPI diff --git a/frontend/src/components/account/BulkEditAccountModal.vue b/frontend/src/components/account/BulkEditAccountModal.vue index fe85204a..e12e0b8c 100644 --- a/frontend/src/components/account/BulkEditAccountModal.vue +++ b/frontend/src/components/account/BulkEditAccountModal.vue @@ -1,16 +1,16 @@