mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-04-24 16:08:41 +00:00
1
This commit is contained in:
@@ -1,262 +1,336 @@
|
||||
import axios from 'axios'
|
||||
import { APP_CONFIG, getLoginUrl } from '@/config/app'
|
||||
|
||||
export const API_PREFIX = APP_CONFIG.apiPrefix
|
||||
|
||||
const axiosInstance = axios.create({
|
||||
baseURL: APP_CONFIG.apiPrefix,
|
||||
timeout: 30000,
|
||||
headers: { 'Content-Type': 'application/json' }
|
||||
})
|
||||
|
||||
axiosInstance.interceptors.request.use((config) => {
|
||||
const token = localStorage.getItem('authToken')
|
||||
if (token) config.headers['Authorization'] = `Bearer ${token}`
|
||||
return config
|
||||
})
|
||||
|
||||
axiosInstance.interceptors.response.use(
|
||||
(response) => response.data,
|
||||
(error) => {
|
||||
if (error.response?.status === 401) {
|
||||
const path = window.location.pathname + window.location.hash
|
||||
if (!path.includes('/login') && !path.endsWith('/')) {
|
||||
localStorage.removeItem('authToken')
|
||||
window.location.href = getLoginUrl()
|
||||
}
|
||||
}
|
||||
return Promise.reject(error)
|
||||
}
|
||||
)
|
||||
|
||||
// 通用请求函数 - 只会 resolve,调用方无需 try-catch
|
||||
const request = async (config) => {
|
||||
try {
|
||||
return await axiosInstance(config)
|
||||
} catch (error) {
|
||||
console.error('Request failed:', error)
|
||||
const data = error.response?.data
|
||||
if (data && typeof data.success !== 'undefined') return data
|
||||
const status = error.response?.status
|
||||
const messages = {
|
||||
401: '未授权,请重新登录',
|
||||
403: '无权限访问',
|
||||
404: '请求的资源不存在',
|
||||
500: '服务器内部错误'
|
||||
}
|
||||
return { success: false, message: messages[status] || error.message || '请求失败' }
|
||||
}
|
||||
}
|
||||
|
||||
const get = (url, config) => request({ method: 'get', url, ...config })
|
||||
const post = (url, data, config) => request({ method: 'post', url, data, ...config })
|
||||
const put = (url, data, config) => request({ method: 'put', url, data, ...config })
|
||||
const patch = (url, data, config) => request({ method: 'patch', url, data, ...config })
|
||||
const del = (url, config) => request({ method: 'delete', url, ...config })
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 模型
|
||||
export const getModels = () => get('/apiStats/models')
|
||||
export const getModelsByService = (service) => get('/apiStats/models', { params: { service } })
|
||||
|
||||
// API Key 测试
|
||||
export const testClaudeApiKey = (data) => post('/apiStats/api-key/test', data)
|
||||
export const testGeminiApiKey = (data) => post('/apiStats/api-key/test-gemini', data)
|
||||
export const testOpenAIApiKey = (data) => post('/apiStats/api-key/test-openai', data)
|
||||
export const getModelsApi = () => request({ url: '/apiStats/models', method: 'GET' })
|
||||
|
||||
// API Stats
|
||||
export const getKeyId = (apiKey) => post('/apiStats/api/get-key-id', { apiKey })
|
||||
export const getUserStats = (apiId) => post('/apiStats/api/user-stats', { apiId })
|
||||
export const getUserModelStats = (apiId, period = 'daily') =>
|
||||
post('/apiStats/api/user-model-stats', { apiId, period })
|
||||
export const getBatchStats = (apiIds) => post('/apiStats/api/batch-stats', { apiIds })
|
||||
export const getBatchModelStats = (apiIds, period = 'daily') =>
|
||||
post('/apiStats/api/batch-model-stats', { apiIds, period })
|
||||
export const getKeyIdApi = (apiKey) =>
|
||||
request({ url: '/apiStats/api/get-key-id', method: 'POST', data: { apiKey } })
|
||||
export const getUserStatsApi = (apiId) =>
|
||||
request({ url: '/apiStats/api/user-stats', method: 'POST', data: { apiId } })
|
||||
export const getUserModelStatsApi = (apiId, period = 'daily') =>
|
||||
request({ url: '/apiStats/api/user-model-stats', method: 'POST', data: { apiId, period } })
|
||||
export const getBatchStatsApi = (apiIds) =>
|
||||
request({ url: '/apiStats/api/batch-stats', method: 'POST', data: { apiIds } })
|
||||
export const getBatchModelStatsApi = (apiIds, period = 'daily') =>
|
||||
request({ url: '/apiStats/api/batch-model-stats', method: 'POST', data: { apiIds, period } })
|
||||
|
||||
// 认证
|
||||
export const login = (credentials) => post('/web/auth/login', credentials)
|
||||
export const getAuthUser = () => get('/web/auth/user')
|
||||
export const loginApi = (data) => request({ url: '/web/auth/login', method: 'POST', data })
|
||||
export const getAuthUserApi = () => request({ url: '/web/auth/user', method: 'GET' })
|
||||
export const changePasswordApi = (data) =>
|
||||
request({ url: '/web/auth/change-password', method: 'POST', data })
|
||||
|
||||
// OEM 设置
|
||||
export const getOemSettings = () => get('/admin/oem-settings')
|
||||
export const updateOemSettings = (data) => put('/admin/oem-settings', data)
|
||||
export const getOemSettingsApi = () => request({ url: '/admin/oem-settings', method: 'GET' })
|
||||
export const updateOemSettingsApi = (data) =>
|
||||
request({ url: '/admin/oem-settings', method: 'PUT', data })
|
||||
|
||||
// 服务倍率配置(公开接口)
|
||||
export const getServiceRates = () => get('/apiStats/service-rates')
|
||||
export const getServiceRatesApi = () => request({ url: '/apiStats/service-rates', method: 'GET' })
|
||||
|
||||
// 额度卡兑换(公开接口)
|
||||
export const redeemCardByApiIdApi = (data) =>
|
||||
request({ url: '/apiStats/api/redeem-card', method: 'POST', data })
|
||||
export const getRedemptionHistoryByApiIdApi = (apiId, params = {}) =>
|
||||
request({ url: '/apiStats/api/redemption-history', method: 'GET', params: { apiId, ...params } })
|
||||
|
||||
// 仪表板
|
||||
export const getDashboard = () => get('/admin/dashboard')
|
||||
export const getUsageCosts = (period) => get(`/admin/usage-costs?period=${period}`)
|
||||
export const getUsageStats = (url) => get(url)
|
||||
export const getDashboardApi = () => request({ url: '/admin/dashboard', method: 'GET' })
|
||||
export const getUsageCostsApi = (period) =>
|
||||
request({ url: `/admin/usage-costs?period=${period}`, method: 'GET' })
|
||||
export const getUsageStatsApi = (url) => request({ url, method: 'GET' })
|
||||
|
||||
// 客户端
|
||||
export const getSupportedClients = () => get('/admin/supported-clients')
|
||||
export const getSupportedClientsApi = () =>
|
||||
request({ url: '/admin/supported-clients', method: 'GET' })
|
||||
|
||||
// API Keys
|
||||
export const getApiKeys = () => get('/admin/api-keys')
|
||||
export const getApiKeysWithParams = (params) => get(`/admin/api-keys?${params}`)
|
||||
export const createApiKey = (data) => post('/admin/api-keys', data)
|
||||
export const updateApiKey = (id, data) => put(`/admin/api-keys/${id}`, data)
|
||||
export const toggleApiKey = (id) => put(`/admin/api-keys/${id}/toggle`)
|
||||
export const deleteApiKey = (id) => del(`/admin/api-keys/${id}`)
|
||||
export const getApiKeyStats = (id, params) => get(`/admin/api-keys/${id}/stats`, { params })
|
||||
export const getApiKeyTags = () => get('/admin/api-keys/tags')
|
||||
export const getApiKeyUsedModels = () => get('/admin/api-keys/used-models')
|
||||
export const getApiKeysBatchStats = (data) => post('/admin/api-keys/batch-stats', data)
|
||||
export const getApiKeysBatchLastUsage = (data) => post('/admin/api-keys/batch-last-usage', data)
|
||||
export const getDeletedApiKeys = () => get('/admin/api-keys/deleted')
|
||||
export const getApiKeysCostSortStatus = () => get('/admin/api-keys/cost-sort-status')
|
||||
export const restoreApiKey = (id) => post(`/admin/api-keys/${id}/restore`)
|
||||
export const permanentDeleteApiKey = (id) => del(`/admin/api-keys/${id}/permanent`)
|
||||
export const clearAllDeletedApiKeys = () => del('/admin/api-keys/deleted/clear-all')
|
||||
export const batchDeleteApiKeys = (data) => del('/admin/api-keys/batch', { data })
|
||||
export const updateApiKeyExpiration = (id, data) =>
|
||||
request({ method: 'patch', url: `/admin/api-keys/${id}/expiration`, data })
|
||||
export const getApiKeysApi = () => request({ url: '/admin/api-keys', method: 'GET' })
|
||||
export const getApiKeysWithParamsApi = (params) =>
|
||||
request({ url: `/admin/api-keys?${params}`, method: 'GET' })
|
||||
export const createApiKeyApi = (data) => request({ url: '/admin/api-keys', method: 'POST', data })
|
||||
export const updateApiKeyApi = (id, data) =>
|
||||
request({ url: `/admin/api-keys/${id}`, method: 'PUT', data })
|
||||
export const toggleApiKeyApi = (id) =>
|
||||
request({ url: `/admin/api-keys/${id}/toggle`, method: 'PUT' })
|
||||
export const deleteApiKeyApi = (id) => request({ url: `/admin/api-keys/${id}`, method: 'DELETE' })
|
||||
export const getApiKeyStatsApi = (id, params) =>
|
||||
request({ url: `/admin/api-keys/${id}/stats`, method: 'GET', params })
|
||||
export const getApiKeyModelStatsApi = (id, params) =>
|
||||
request({ url: `/admin/api-keys/${id}/model-stats`, method: 'GET', params })
|
||||
export const getApiKeyTagsApi = () => request({ url: '/admin/api-keys/tags', method: 'GET' })
|
||||
export const getApiKeyTagsDetailsApi = () =>
|
||||
request({ url: '/admin/api-keys/tags/details', method: 'GET' })
|
||||
export const createApiKeyTagApi = (name) =>
|
||||
request({ url: '/admin/api-keys/tags', method: 'POST', data: { name } })
|
||||
export const deleteApiKeyTagApi = (tagName) =>
|
||||
request({ url: `/admin/api-keys/tags/${encodeURIComponent(tagName)}`, method: 'DELETE' })
|
||||
export const renameApiKeyTagApi = (tagName, newName) =>
|
||||
request({
|
||||
url: `/admin/api-keys/tags/${encodeURIComponent(tagName)}`,
|
||||
method: 'PUT',
|
||||
data: { newName }
|
||||
})
|
||||
export const getApiKeyUsedModelsApi = () =>
|
||||
request({ url: '/admin/api-keys/used-models', method: 'GET' })
|
||||
export const getApiKeysBatchStatsApi = (data) =>
|
||||
request({ url: '/admin/api-keys/batch-stats', method: 'POST', data })
|
||||
export const getApiKeysBatchLastUsageApi = (data) =>
|
||||
request({ url: '/admin/api-keys/batch-last-usage', method: 'POST', data })
|
||||
export const getDeletedApiKeysApi = () => request({ url: '/admin/api-keys/deleted', method: 'GET' })
|
||||
export const getApiKeysCostSortStatusApi = () =>
|
||||
request({ url: '/admin/api-keys/cost-sort-status', method: 'GET' })
|
||||
export const restoreApiKeyApi = (id) =>
|
||||
request({ url: `/admin/api-keys/${id}/restore`, method: 'POST' })
|
||||
export const permanentDeleteApiKeyApi = (id) =>
|
||||
request({ url: `/admin/api-keys/${id}/permanent`, method: 'DELETE' })
|
||||
export const clearAllDeletedApiKeysApi = () =>
|
||||
request({ url: '/admin/api-keys/deleted/clear-all', method: 'DELETE' })
|
||||
export const batchDeleteApiKeysApi = (data) =>
|
||||
request({ url: '/admin/api-keys/batch', method: 'DELETE', data })
|
||||
export const updateApiKeyExpirationApi = (id, data) =>
|
||||
request({ url: `/admin/api-keys/${id}/expiration`, method: 'PATCH', data })
|
||||
export const batchCreateApiKeysApi = (data) =>
|
||||
request({ url: '/admin/api-keys/batch', method: 'POST', data })
|
||||
export const batchUpdateApiKeysApi = (data) =>
|
||||
request({ url: '/admin/api-keys/batch', method: 'PUT', data })
|
||||
export const getApiKeyUsageRecordsApi = (id, params) =>
|
||||
request({ url: `/admin/api-keys/${id}/usage-records`, method: 'GET', params })
|
||||
|
||||
// Claude 账户
|
||||
export const getClaudeAccounts = () => get('/admin/claude-accounts')
|
||||
export const createClaudeAccount = (data) => post('/admin/claude-accounts', data)
|
||||
export const updateClaudeAccount = (id, data) => put(`/admin/claude-accounts/${id}`, data)
|
||||
export const deleteClaudeAccount = (id) => del(`/admin/claude-accounts/${id}`)
|
||||
export const refreshClaudeAccount = (id) => post(`/admin/claude-accounts/${id}/refresh`)
|
||||
export const generateClaudeAuthUrl = (data) =>
|
||||
post('/admin/claude-accounts/generate-auth-url', data)
|
||||
export const exchangeClaudeCode = (data) => post('/admin/claude-accounts/exchange-code', data)
|
||||
export const generateClaudeSetupTokenUrl = (data) =>
|
||||
post('/admin/claude-accounts/generate-setup-token-url', data)
|
||||
export const exchangeClaudeSetupToken = (data) =>
|
||||
post('/admin/claude-accounts/exchange-setup-token', data)
|
||||
export const claudeOAuthWithCookie = (data) =>
|
||||
post('/admin/claude-accounts/oauth-with-cookie', data)
|
||||
export const claudeSetupTokenWithCookie = (data) =>
|
||||
post('/admin/claude-accounts/setup-token-with-cookie', data)
|
||||
export const generateClaudeWorkosAuthUrl = (data) =>
|
||||
post('/admin/claude-accounts/generate-workos-auth-url', data)
|
||||
export const getClaudeAccountsApi = () => request({ url: '/admin/claude-accounts', method: 'GET' })
|
||||
export const createClaudeAccountApi = (data) =>
|
||||
request({ url: '/admin/claude-accounts', method: 'POST', data })
|
||||
export const updateClaudeAccountApi = (id, data) =>
|
||||
request({ url: `/admin/claude-accounts/${id}`, method: 'PUT', data })
|
||||
export const refreshClaudeAccountApi = (id) =>
|
||||
request({ url: `/admin/claude-accounts/${id}/refresh`, method: 'POST' })
|
||||
export const generateClaudeAuthUrlApi = (data) =>
|
||||
request({ url: '/admin/claude-accounts/generate-auth-url', method: 'POST', data })
|
||||
export const exchangeClaudeCodeApi = (data) =>
|
||||
request({ url: '/admin/claude-accounts/exchange-code', method: 'POST', data })
|
||||
export const generateClaudeSetupTokenUrlApi = (data) =>
|
||||
request({ url: '/admin/claude-accounts/generate-setup-token-url', method: 'POST', data })
|
||||
export const exchangeClaudeSetupTokenApi = (data) =>
|
||||
request({ url: '/admin/claude-accounts/exchange-setup-token', method: 'POST', data })
|
||||
export const claudeOAuthWithCookieApi = (data) =>
|
||||
request({ url: '/admin/claude-accounts/oauth-with-cookie', method: 'POST', data })
|
||||
export const claudeSetupTokenWithCookieApi = (data) =>
|
||||
request({ url: '/admin/claude-accounts/setup-token-with-cookie', method: 'POST', data })
|
||||
|
||||
// Claude Console 账户
|
||||
export const getClaudeConsoleAccounts = () => get('/admin/claude-console-accounts')
|
||||
export const createClaudeConsoleAccount = (data) => post('/admin/claude-console-accounts', data)
|
||||
export const updateClaudeConsoleAccount = (id, data) =>
|
||||
put(`/admin/claude-console-accounts/${id}`, data)
|
||||
export const deleteClaudeConsoleAccount = (id) => del(`/admin/claude-console-accounts/${id}`)
|
||||
export const getClaudeConsoleAccountsApi = () =>
|
||||
request({ url: '/admin/claude-console-accounts', method: 'GET' })
|
||||
export const createClaudeConsoleAccountApi = (data) =>
|
||||
request({ url: '/admin/claude-console-accounts', method: 'POST', data })
|
||||
export const updateClaudeConsoleAccountApi = (id, data) =>
|
||||
request({ url: `/admin/claude-console-accounts/${id}`, method: 'PUT', data })
|
||||
|
||||
// Bedrock 账户
|
||||
export const getBedrockAccounts = () => get('/admin/bedrock-accounts')
|
||||
export const createBedrockAccount = (data) => post('/admin/bedrock-accounts', data)
|
||||
export const updateBedrockAccount = (id, data) => put(`/admin/bedrock-accounts/${id}`, data)
|
||||
export const deleteBedrockAccount = (id) => del(`/admin/bedrock-accounts/${id}`)
|
||||
export const getBedrockAccountsApi = () =>
|
||||
request({ url: '/admin/bedrock-accounts', method: 'GET' })
|
||||
export const createBedrockAccountApi = (data) =>
|
||||
request({ url: '/admin/bedrock-accounts', method: 'POST', data })
|
||||
export const updateBedrockAccountApi = (id, data) =>
|
||||
request({ url: `/admin/bedrock-accounts/${id}`, method: 'PUT', data })
|
||||
|
||||
// Gemini 账户
|
||||
export const getGeminiAccounts = () => get('/admin/gemini-accounts')
|
||||
export const createGeminiAccount = (data) => post('/admin/gemini-accounts', data)
|
||||
export const updateGeminiAccount = (id, data) => put(`/admin/gemini-accounts/${id}`, data)
|
||||
export const deleteGeminiAccount = (id) => del(`/admin/gemini-accounts/${id}`)
|
||||
export const generateGeminiAuthUrl = (data) =>
|
||||
post('/admin/gemini-accounts/generate-auth-url', data)
|
||||
export const exchangeGeminiCode = (data) => post('/admin/gemini-accounts/exchange-code', data)
|
||||
export const getGeminiAccountsApi = () => request({ url: '/admin/gemini-accounts', method: 'GET' })
|
||||
export const createGeminiAccountApi = (data) =>
|
||||
request({ url: '/admin/gemini-accounts', method: 'POST', data })
|
||||
export const updateGeminiAccountApi = (id, data) =>
|
||||
request({ url: `/admin/gemini-accounts/${id}`, method: 'PUT', data })
|
||||
export const generateGeminiAuthUrlApi = (data) =>
|
||||
request({ url: '/admin/gemini-accounts/generate-auth-url', method: 'POST', data })
|
||||
export const exchangeGeminiCodeApi = (data) =>
|
||||
request({ url: '/admin/gemini-accounts/exchange-code', method: 'POST', data })
|
||||
|
||||
// Gemini API 账户
|
||||
export const createGeminiApiAccount = (data) => post('/admin/gemini-api-accounts', data)
|
||||
export const updateGeminiApiAccount = (id, data) => put(`/admin/gemini-api-accounts/${id}`, data)
|
||||
export const getGeminiApiAccountsApi = () =>
|
||||
request({ url: '/admin/gemini-api-accounts', method: 'GET' })
|
||||
export const createGeminiApiAccountApi = (data) =>
|
||||
request({ url: '/admin/gemini-api-accounts', method: 'POST', data })
|
||||
export const updateGeminiApiAccountApi = (id, data) =>
|
||||
request({ url: `/admin/gemini-api-accounts/${id}`, method: 'PUT', data })
|
||||
|
||||
// OpenAI 账户
|
||||
export const getOpenAIAccounts = () => get('/admin/openai-accounts')
|
||||
export const createOpenAIAccount = (data) => post('/admin/openai-accounts', data)
|
||||
export const updateOpenAIAccount = (id, data) => put(`/admin/openai-accounts/${id}`, data)
|
||||
export const deleteOpenAIAccount = (id) => del(`/admin/openai-accounts/${id}`)
|
||||
export const generateOpenAIAuthUrl = (data) =>
|
||||
post('/admin/openai-accounts/generate-auth-url', data)
|
||||
export const exchangeOpenAICode = (data) => post('/admin/openai-accounts/exchange-code', data)
|
||||
export const getOpenAIAccountsApi = () => request({ url: '/admin/openai-accounts', method: 'GET' })
|
||||
export const createOpenAIAccountApi = (data) =>
|
||||
request({ url: '/admin/openai-accounts', method: 'POST', data })
|
||||
export const updateOpenAIAccountApi = (id, data) =>
|
||||
request({ url: `/admin/openai-accounts/${id}`, method: 'PUT', data })
|
||||
export const generateOpenAIAuthUrlApi = (data) =>
|
||||
request({ url: '/admin/openai-accounts/generate-auth-url', method: 'POST', data })
|
||||
export const exchangeOpenAICodeApi = (data) =>
|
||||
request({ url: '/admin/openai-accounts/exchange-code', method: 'POST', data })
|
||||
|
||||
// OpenAI Responses 账户
|
||||
export const getOpenAIResponsesAccounts = () => get('/admin/openai-responses-accounts')
|
||||
export const createOpenAIResponsesAccount = (data) => post('/admin/openai-responses-accounts', data)
|
||||
export const updateOpenAIResponsesAccount = (id, data) =>
|
||||
put(`/admin/openai-responses-accounts/${id}`, data)
|
||||
export const deleteOpenAIResponsesAccount = (id) => del(`/admin/openai-responses-accounts/${id}`)
|
||||
export const getOpenAIResponsesAccountsApi = () =>
|
||||
request({ url: '/admin/openai-responses-accounts', method: 'GET' })
|
||||
export const createOpenAIResponsesAccountApi = (data) =>
|
||||
request({ url: '/admin/openai-responses-accounts', method: 'POST', data })
|
||||
export const updateOpenAIResponsesAccountApi = (id, data) =>
|
||||
request({ url: `/admin/openai-responses-accounts/${id}`, method: 'PUT', data })
|
||||
|
||||
// Azure OpenAI 账户
|
||||
export const getAzureOpenAIAccounts = () => get('/admin/azure-openai-accounts')
|
||||
export const createAzureOpenAIAccount = (data) => post('/admin/azure-openai-accounts', data)
|
||||
export const updateAzureOpenAIAccount = (id, data) =>
|
||||
put(`/admin/azure-openai-accounts/${id}`, data)
|
||||
export const deleteAzureOpenAIAccount = (id) => del(`/admin/azure-openai-accounts/${id}`)
|
||||
export const getAzureOpenAIAccountsApi = () =>
|
||||
request({ url: '/admin/azure-openai-accounts', method: 'GET' })
|
||||
export const createAzureOpenAIAccountApi = (data) =>
|
||||
request({ url: '/admin/azure-openai-accounts', method: 'POST', data })
|
||||
export const updateAzureOpenAIAccountApi = (id, data) =>
|
||||
request({ url: `/admin/azure-openai-accounts/${id}`, method: 'PUT', data })
|
||||
|
||||
// Droid 账户
|
||||
export const getDroidAccounts = () => get('/admin/droid-accounts')
|
||||
export const createDroidAccount = (data) => post('/admin/droid-accounts', data)
|
||||
export const updateDroidAccount = (id, data) => put(`/admin/droid-accounts/${id}`, data)
|
||||
export const deleteDroidAccount = (id) => del(`/admin/droid-accounts/${id}`)
|
||||
export const generateDroidAuthUrl = (data) => post('/admin/droid-accounts/generate-auth-url', data)
|
||||
export const exchangeDroidCode = (data) => post('/admin/droid-accounts/exchange-code', data)
|
||||
export const getDroidAccountsApi = () => request({ url: '/admin/droid-accounts', method: 'GET' })
|
||||
export const createDroidAccountApi = (data) =>
|
||||
request({ url: '/admin/droid-accounts', method: 'POST', data })
|
||||
export const updateDroidAccountApi = (id, data) =>
|
||||
request({ url: `/admin/droid-accounts/${id}`, method: 'PUT', data })
|
||||
export const generateDroidAuthUrlApi = (data) =>
|
||||
request({ url: '/admin/droid-accounts/generate-auth-url', method: 'POST', data })
|
||||
export const exchangeDroidCodeApi = (data) =>
|
||||
request({ url: '/admin/droid-accounts/exchange-code', method: 'POST', data })
|
||||
export const getDroidAccountByIdApi = (id) =>
|
||||
request({ url: `/admin/droid-accounts/${id}`, method: 'GET' })
|
||||
|
||||
// CCR 账户
|
||||
export const getCcrAccounts = () => get('/admin/ccr-accounts')
|
||||
export const createCcrAccount = (data) => post('/admin/ccr-accounts', data)
|
||||
export const updateCcrAccount = (id, data) => put(`/admin/ccr-accounts/${id}`, data)
|
||||
export const deleteCcrAccount = (id) => del(`/admin/ccr-accounts/${id}`)
|
||||
|
||||
// Gemini API 账户
|
||||
export const getGeminiApiAccounts = () => get('/admin/gemini-api-accounts')
|
||||
export const getCcrAccountsApi = () => request({ url: '/admin/ccr-accounts', method: 'GET' })
|
||||
export const createCcrAccountApi = (data) =>
|
||||
request({ url: '/admin/ccr-accounts', method: 'POST', data })
|
||||
export const updateCcrAccountApi = (id, data) =>
|
||||
request({ url: `/admin/ccr-accounts/${id}`, method: 'PUT', data })
|
||||
|
||||
// 账户通用操作
|
||||
export const toggleAccountStatus = (endpoint) => put(endpoint)
|
||||
export const deleteAccountByEndpoint = (endpoint) => del(endpoint)
|
||||
export const testAccountByEndpoint = (endpoint) => post(endpoint)
|
||||
export const updateAccountByEndpoint = (endpoint, data) => put(endpoint, data)
|
||||
export const toggleAccountStatusApi = (endpoint) => request({ url: endpoint, method: 'PUT' })
|
||||
export const deleteAccountByEndpointApi = (endpoint) => request({ url: endpoint, method: 'DELETE' })
|
||||
export const testAccountByEndpointApi = (endpoint) => request({ url: endpoint, method: 'POST' })
|
||||
export const updateAccountByEndpointApi = (endpoint, data) =>
|
||||
request({ url: endpoint, method: 'PUT', data })
|
||||
|
||||
// 账户使用统计
|
||||
export const getClaudeAccountsUsage = () => get('/admin/claude-accounts/usage')
|
||||
export const getAccountsBindingCounts = () => get('/admin/accounts/binding-counts')
|
||||
export const getAccountUsageHistory = (id, platform, days = 30) =>
|
||||
get(`/admin/accounts/${id}/usage-history?platform=${platform}&days=${days}`)
|
||||
export const getClaudeAccountsUsageApi = () =>
|
||||
request({ url: '/admin/claude-accounts/usage', method: 'GET' })
|
||||
export const getAccountsBindingCountsApi = () =>
|
||||
request({ url: '/admin/accounts/binding-counts', method: 'GET' })
|
||||
export const getAccountUsageHistoryApi = (id, platform, days = 30) =>
|
||||
request({
|
||||
url: `/admin/accounts/${id}/usage-history?platform=${platform}&days=${days}`,
|
||||
method: 'GET'
|
||||
})
|
||||
export const getClaudeConsoleAccountUsageApi = (id) =>
|
||||
request({ url: `/admin/claude-console-accounts/${id}/usage`, method: 'GET' })
|
||||
export const getAccountUsageRecordsByIdApi = (id, params) =>
|
||||
request({ url: `/admin/accounts/${id}/usage-records`, method: 'GET', params })
|
||||
|
||||
// 账户组
|
||||
export const getAccountGroups = () => get('/admin/account-groups')
|
||||
export const createAccountGroup = (data) => post('/admin/account-groups', data)
|
||||
export const updateAccountGroup = (id, data) => put(`/admin/account-groups/${id}`, data)
|
||||
export const deleteAccountGroup = (id) => del(`/admin/account-groups/${id}`)
|
||||
export const getAccountGroupsApi = () => request({ url: '/admin/account-groups', method: 'GET' })
|
||||
export const createAccountGroupApi = (data) =>
|
||||
request({ url: '/admin/account-groups', method: 'POST', data })
|
||||
export const updateAccountGroupApi = (id, data) =>
|
||||
request({ url: `/admin/account-groups/${id}`, method: 'PUT', data })
|
||||
export const deleteAccountGroupApi = (id) =>
|
||||
request({ url: `/admin/account-groups/${id}`, method: 'DELETE' })
|
||||
export const getAccountGroupMembersApi = (id) =>
|
||||
request({ url: `/admin/account-groups/${id}/members`, method: 'GET' })
|
||||
|
||||
// 用户管理
|
||||
export const getUsers = () => get('/admin/users')
|
||||
export const createUser = (data) => post('/admin/users', data)
|
||||
export const updateUser = (id, data) => put(`/admin/users/${id}`, data)
|
||||
export const deleteUser = (id) => del(`/admin/users/${id}`)
|
||||
export const updateUserRole = (id, data) => put(`/admin/users/${id}/role`, data)
|
||||
export const getUserUsageStats = (id, params) => get(`/admin/users/${id}/usage-stats`, { params })
|
||||
|
||||
// 使用记录
|
||||
export const getApiKeyUsageRecords = (id, params) =>
|
||||
get(`/admin/api-keys/${id}/usage-records`, { params })
|
||||
export const getAccountUsageRecords = (type, id, params) =>
|
||||
get(`/admin/${type}-accounts/${id}/usage-records`, { params })
|
||||
|
||||
// 系统日志
|
||||
export const getSystemLogs = (params) => get('/admin/logs', { params })
|
||||
// 用户管理(管理员)
|
||||
export const getUsersApi = () => request({ url: '/admin/users', method: 'GET' })
|
||||
|
||||
// 配额卡片
|
||||
export const getQuotaCards = () => get('/admin/quota-cards')
|
||||
export const createQuotaCard = (data) => post('/admin/quota-cards', data)
|
||||
export const updateQuotaCard = (id, data) => put(`/admin/quota-cards/${id}`, data)
|
||||
export const deleteQuotaCard = (id) => del(`/admin/quota-cards/${id}`)
|
||||
export const redeemQuotaCard = (data) => post('/admin/quota-cards/redeem', data)
|
||||
export const createQuotaCardApi = (data) =>
|
||||
request({ url: '/admin/quota-cards', method: 'POST', data })
|
||||
export const deleteQuotaCardApi = (id) =>
|
||||
request({ url: `/admin/quota-cards/${id}`, method: 'DELETE' })
|
||||
export const getQuotaCardsWithParamsApi = (params) =>
|
||||
request({ url: '/admin/quota-cards', method: 'GET', params })
|
||||
export const getQuotaCardsStatsApi = () =>
|
||||
request({ url: '/admin/quota-cards/stats', method: 'GET' })
|
||||
export const getRedemptionsApi = () => request({ url: '/admin/redemptions', method: 'GET' })
|
||||
export const revokeRedemptionApi = (id, data) =>
|
||||
request({ url: `/admin/redemptions/${id}/revoke`, method: 'POST', data })
|
||||
export const getQuotaCardLimitsApi = () =>
|
||||
request({ url: '/admin/quota-cards/limits', method: 'GET' })
|
||||
export const updateQuotaCardLimitsApi = (data) =>
|
||||
request({ url: '/admin/quota-cards/limits', method: 'PUT', data })
|
||||
|
||||
// 账户测试
|
||||
export const testAccount = (type, id) => post(`/admin/${type}-accounts/${id}/test`)
|
||||
export const getAccountTestHistory = (type, id) => get(`/admin/${type}-accounts/${id}/test-history`)
|
||||
// 账户余额
|
||||
export const getAccountBalanceApi = (id, params) =>
|
||||
request({ url: `/admin/accounts/${id}/balance`, method: 'GET', params })
|
||||
export const refreshAccountBalanceApi = (id, data) =>
|
||||
request({ url: `/admin/accounts/${id}/balance/refresh`, method: 'POST', data })
|
||||
export const getBalanceSummaryApi = () =>
|
||||
request({ url: '/admin/accounts/balance/summary', method: 'GET' })
|
||||
export const getBalanceByPlatformApi = (platform, params) =>
|
||||
request({ url: `/admin/accounts/balance/platform/${platform}`, method: 'GET', params })
|
||||
|
||||
// 定时测试
|
||||
export const getScheduledTests = () => get('/admin/scheduled-tests')
|
||||
export const createScheduledTest = (data) => post('/admin/scheduled-tests', data)
|
||||
export const updateScheduledTest = (id, data) => put(`/admin/scheduled-tests/${id}`, data)
|
||||
export const deleteScheduledTest = (id) => del(`/admin/scheduled-tests/${id}`)
|
||||
// 账户余额脚本
|
||||
export const getAccountBalanceScriptApi = (id, platform) =>
|
||||
request({ url: `/admin/accounts/${id}/balance/script?platform=${platform}`, method: 'GET' })
|
||||
export const updateAccountBalanceScriptApi = (id, platform, data) =>
|
||||
request({ url: `/admin/accounts/${id}/balance/script?platform=${platform}`, method: 'PUT', data })
|
||||
export const testAccountBalanceScriptApi = (id, platform, data) =>
|
||||
request({
|
||||
url: `/admin/accounts/${id}/balance/script/test?platform=${platform}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
|
||||
// 统一 User-Agent
|
||||
export const getUnifiedUserAgent = () => get('/admin/unified-user-agent')
|
||||
// 默认余额脚本
|
||||
export const getDefaultBalanceScriptApi = () =>
|
||||
request({ url: '/admin/balance-scripts/default', method: 'GET' })
|
||||
export const updateDefaultBalanceScriptApi = (data) =>
|
||||
request({ url: '/admin/balance-scripts/default', method: 'PUT', data })
|
||||
export const testDefaultBalanceScriptApi = (data) =>
|
||||
request({ url: '/admin/balance-scripts/default/test', method: 'POST', data })
|
||||
|
||||
// 账户 API Keys 管理
|
||||
export const getAccountApiKeys = (type, id) => get(`/admin/${type}-accounts/${id}/api-keys`)
|
||||
export const updateAccountApiKeys = (type, id, data) =>
|
||||
put(`/admin/${type}-accounts/${id}/api-keys`, data)
|
||||
// 前台用户管理
|
||||
export const getFrontUsersApi = (params) => request({ url: '/users', method: 'GET', params })
|
||||
export const getFrontUsersStatsOverviewApi = () =>
|
||||
request({ url: '/users/stats/overview', method: 'GET' })
|
||||
export const getFrontUserByIdApi = (id) => request({ url: `/users/${id}`, method: 'GET' })
|
||||
export const updateFrontUserStatusApi = (id, data) =>
|
||||
request({ url: `/users/${id}/status`, method: 'PATCH', data })
|
||||
export const disableFrontUserKeysApi = (id) =>
|
||||
request({ url: `/users/${id}/disable-keys`, method: 'POST' })
|
||||
export const getFrontUserUsageStatsApi = (id, params) =>
|
||||
request({ url: `/users/${id}/usage-stats`, method: 'GET', params })
|
||||
export const updateFrontUserRoleApi = (id, data) =>
|
||||
request({ url: `/users/${id}/role`, method: 'PATCH', data })
|
||||
|
||||
export default { get, post, put, patch, del, request }
|
||||
export { get, post, put, patch, del }
|
||||
// Webhook 配置
|
||||
export const getWebhookConfigApi = (config) =>
|
||||
request({ url: '/admin/webhook/config', method: 'GET', ...config })
|
||||
export const updateWebhookConfigApi = (data, config) =>
|
||||
request({ url: '/admin/webhook/config', method: 'POST', data, ...config })
|
||||
export const createWebhookPlatformApi = (data, config) =>
|
||||
request({ url: '/admin/webhook/platforms', method: 'POST', data, ...config })
|
||||
export const deleteWebhookPlatformApi = (id, config) =>
|
||||
request({ url: `/admin/webhook/platforms/${id}`, method: 'DELETE', ...config })
|
||||
export const updateWebhookPlatformApi = (id, data, config) =>
|
||||
request({ url: `/admin/webhook/platforms/${id}`, method: 'PUT', data, ...config })
|
||||
export const toggleWebhookPlatformApi = (id, config) =>
|
||||
request({ url: `/admin/webhook/platforms/${id}/toggle`, method: 'POST', ...config })
|
||||
export const testWebhookApi = (data, config) =>
|
||||
request({ url: '/admin/webhook/test', method: 'POST', data, ...config })
|
||||
export const testWebhookNotificationApi = (config) =>
|
||||
request({ url: '/admin/webhook/test-notification', method: 'POST', ...config })
|
||||
|
||||
// Claude Relay 配置
|
||||
export const getClaudeRelayConfigApi = (config) =>
|
||||
request({ url: '/admin/claude-relay-config', method: 'GET', ...config })
|
||||
export const updateClaudeRelayConfigApi = (data, config) =>
|
||||
request({ url: '/admin/claude-relay-config', method: 'PUT', data, ...config })
|
||||
|
||||
// 服务倍率配置(管理端)
|
||||
export const getAdminServiceRatesApi = (config) =>
|
||||
request({ url: '/admin/service-rates', method: 'GET', ...config })
|
||||
export const updateAdminServiceRatesApi = (data, config) =>
|
||||
request({ url: '/admin/service-rates', method: 'PUT', data, ...config })
|
||||
|
||||
// 系统
|
||||
export const checkUpdatesApi = () => request({ url: '/admin/check-updates', method: 'GET' })
|
||||
export const getClaudeCodeVersionApi = () =>
|
||||
request({ url: '/admin/claude-code-version', method: 'GET' })
|
||||
export const clearClaudeCodeVersionApi = () =>
|
||||
request({ url: '/admin/claude-code-version/clear', method: 'POST' })
|
||||
|
||||
Reference in New Issue
Block a user