init
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
import { apiGet, apiGetBlob, apiPost } from '@/lib/http'
|
||||
import type {
|
||||
AdminAuditLogItem,
|
||||
AdminTaskActionResponse,
|
||||
AdminCdkListItem,
|
||||
AdminDashboardSummary,
|
||||
AdminLoginResponse,
|
||||
AdminOrderDetail,
|
||||
AdminOrderListItem,
|
||||
AdminPagination,
|
||||
AdminSessionSummary,
|
||||
AdminTaskDetail,
|
||||
AdminTaskListItem,
|
||||
AdminUserListItem,
|
||||
AdminWebhookEventDetail,
|
||||
AdminWebhookEventListItem,
|
||||
AdminWebhookReplayResponse,
|
||||
} from '@/types/admin'
|
||||
|
||||
export function loginAdmin(payload: { username: string; password: string }) {
|
||||
return apiPost<AdminLoginResponse>('/api/v1/admin/auth/login', payload)
|
||||
}
|
||||
|
||||
export function fetchAdminSession() {
|
||||
return apiGet<AdminSessionSummary>('/api/v1/admin/auth/session')
|
||||
}
|
||||
|
||||
export function logoutAdmin() {
|
||||
return apiPost<{ success: boolean }>('/api/v1/admin/auth/logout', {})
|
||||
}
|
||||
|
||||
export function fetchAdminDashboardSummary() {
|
||||
return apiGet<AdminDashboardSummary>('/api/v1/admin/dashboard/summary')
|
||||
}
|
||||
|
||||
export function fetchAdminUsers(params?: Record<string, unknown>) {
|
||||
return apiGet<{ items: AdminUserListItem[]; pagination: AdminPagination }>('/api/v1/admin/users', params)
|
||||
}
|
||||
|
||||
export function createAdminUser(payload: { username: string; password: string; role: string; status?: string }) {
|
||||
return apiPost<{ user: AdminUserListItem }>('/api/v1/admin/users', payload)
|
||||
}
|
||||
|
||||
export function updateAdminUserRole(userId: number | string, payload: { role: string }) {
|
||||
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/role`, payload)
|
||||
}
|
||||
|
||||
export function updateAdminUserStatus(userId: number | string, payload: { status: string }) {
|
||||
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/status`, payload)
|
||||
}
|
||||
|
||||
export function resetAdminUserPassword(userId: number | string, payload: { password: string }) {
|
||||
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/reset-password`, payload)
|
||||
}
|
||||
|
||||
export function fetchAdminAuditLogs(params?: Record<string, unknown>) {
|
||||
return apiGet<{ items: AdminAuditLogItem[]; pagination: AdminPagination }>('/api/v1/admin/audit-logs', params)
|
||||
}
|
||||
|
||||
export function fetchAdminOrders(params?: Record<string, unknown>) {
|
||||
return apiGet<{ items: AdminOrderListItem[]; pagination: AdminPagination }>('/api/v1/admin/orders', params)
|
||||
}
|
||||
|
||||
export function fetchAdminOrderDetail(orderId: number | string) {
|
||||
return apiGet<AdminOrderDetail>(`/api/v1/admin/orders/${orderId}`)
|
||||
}
|
||||
|
||||
export function fetchAdminTasks(params?: Record<string, unknown>) {
|
||||
return apiGet<{ items: AdminTaskListItem[]; pagination: AdminPagination }>('/api/v1/admin/tasks', params)
|
||||
}
|
||||
|
||||
export function fetchAdminTaskDetail(taskId: number | string) {
|
||||
return apiGet<AdminTaskDetail>(`/api/v1/admin/tasks/${taskId}`)
|
||||
}
|
||||
|
||||
export function fetchAdminTaskScreenshot(taskId: number | string) {
|
||||
return apiGetBlob(`/api/v1/admin/tasks/${taskId}/screenshot`)
|
||||
}
|
||||
|
||||
export function retryAdminTask(taskId: number | string) {
|
||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/retry`, {})
|
||||
}
|
||||
|
||||
export function releaseAdminTaskCdk(taskId: number | string) {
|
||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/release-cdk`, {})
|
||||
}
|
||||
|
||||
export function regenerateAdminTaskClaimLink(taskId: number | string) {
|
||||
return apiPost<AdminTaskActionResponse>(
|
||||
`/api/v1/admin/tasks/${taskId}/regenerate-claim-link`,
|
||||
{},
|
||||
)
|
||||
}
|
||||
|
||||
export function closeAdminTask(taskId: number | string) {
|
||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/close`, {})
|
||||
}
|
||||
|
||||
export function markAdminTaskManualReview(taskId: number | string) {
|
||||
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/mark-manual-review`, {})
|
||||
}
|
||||
|
||||
export function fetchAdminCdks(params?: Record<string, unknown>) {
|
||||
return apiGet<{ items: AdminCdkListItem[]; pagination: AdminPagination }>('/api/v1/admin/cdks', params)
|
||||
}
|
||||
|
||||
export function importAdminCdks(payload: Record<string, unknown>) {
|
||||
return apiPost<{ total: number; created: number; duplicated: number }>('/api/v1/admin/cdks/import', payload)
|
||||
}
|
||||
|
||||
export function createAdminCdk(payload: Record<string, unknown>) {
|
||||
return apiPost<{ cdk: AdminCdkListItem | null }>('/api/v1/admin/cdks', payload)
|
||||
}
|
||||
|
||||
export function releaseAdminInventoryCdk(cdkId: number | string) {
|
||||
return apiPost<{ cdk: AdminCdkListItem | null }>(`/api/v1/admin/cdks/${cdkId}/release`, {})
|
||||
}
|
||||
|
||||
export function invalidateAdminCdk(cdkId: number | string, payload?: Record<string, unknown>) {
|
||||
return apiPost<{ cdk: AdminCdkListItem | null }>(`/api/v1/admin/cdks/${cdkId}/invalidate`, payload || {})
|
||||
}
|
||||
|
||||
export function fetchAdminWebhookEvents(params?: Record<string, unknown>) {
|
||||
return apiGet<{ items: AdminWebhookEventListItem[]; pagination: AdminPagination }>(
|
||||
'/api/v1/admin/webhook-events',
|
||||
params,
|
||||
)
|
||||
}
|
||||
|
||||
export function fetchAdminWebhookEventDetail(eventId: number | string) {
|
||||
return apiGet<AdminWebhookEventDetail>(`/api/v1/admin/webhook-events/${eventId}`)
|
||||
}
|
||||
|
||||
export function replayAdminWebhookEvent(eventId: number | string) {
|
||||
return apiPost<AdminWebhookReplayResponse>(`/api/v1/admin/webhook-events/${eventId}/replay`, {})
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import { apiGet, apiPost } from '@/lib/http'
|
||||
import type { ClaimDetailData } from '@/types/claim'
|
||||
import type { TencentLoginType } from '@/types/tencent/session'
|
||||
|
||||
export function fetchClaimDetail(token: string) {
|
||||
return apiGet<ClaimDetailData>(`/api/v1/claim/${token}`)
|
||||
}
|
||||
|
||||
export function createClaimSession(token: string, loginType: TencentLoginType) {
|
||||
return apiPost<ClaimDetailData>(`/api/v1/claim/${token}/session`, { loginType })
|
||||
}
|
||||
|
||||
export function fetchClaimSessionSummary(token: string) {
|
||||
return apiGet<ClaimDetailData>(`/api/v1/claim/${token}/session/summary`)
|
||||
}
|
||||
|
||||
export function confirmClaimRole(token: string) {
|
||||
return apiPost<ClaimDetailData>(`/api/v1/claim/${token}/confirm-role`, { confirm: true })
|
||||
}
|
||||
|
||||
export function redeemClaim(token: string) {
|
||||
return apiPost<ClaimDetailData>(`/api/v1/claim/${token}/redeem`, {})
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export function buildTencentBrowserSessionScreenshotUrl(sessionId: string, cacheKey = '') {
|
||||
const suffix = cacheKey ? `?t=${encodeURIComponent(cacheKey)}` : ''
|
||||
return `/api/v1/tencent/browser/session/${sessionId}/screenshot${suffix}`
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { apiPost } from '@/lib/http'
|
||||
import type { TencentBrowserSessionData } from '@/types/tencent/session'
|
||||
|
||||
export interface TencentBrowserRedeemPayload {
|
||||
code: string
|
||||
maxAttempts?: number
|
||||
}
|
||||
|
||||
export function redeemTencentBrowserSession(
|
||||
sessionId: string,
|
||||
payload: TencentBrowserRedeemPayload,
|
||||
) {
|
||||
return apiPost<TencentBrowserSessionData>(
|
||||
`/api/v1/tencent/browser/session/${sessionId}/redeem`,
|
||||
payload as unknown as Record<string, unknown>,
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import { apiDelete, apiGet, apiPost } from '@/lib/http'
|
||||
import type {
|
||||
TencentBrowserSessionData,
|
||||
TencentBrowserSessionSummaryData,
|
||||
TencentLoginType,
|
||||
} from '@/types/tencent/session'
|
||||
|
||||
export interface CreateTencentBrowserSessionPayload {
|
||||
loginType?: TencentLoginType
|
||||
}
|
||||
|
||||
export function createTencentBrowserSession(payload?: CreateTencentBrowserSessionPayload) {
|
||||
return apiPost<TencentBrowserSessionData>(
|
||||
'/api/v1/tencent/browser/session',
|
||||
payload as Record<string, unknown> | undefined,
|
||||
)
|
||||
}
|
||||
|
||||
export function fetchTencentBrowserSession(sessionId: string) {
|
||||
return apiGet<TencentBrowserSessionData>(`/api/v1/tencent/browser/session/${sessionId}`)
|
||||
}
|
||||
|
||||
export function fetchTencentBrowserSessionSummary(sessionId: string) {
|
||||
return apiGet<TencentBrowserSessionSummaryData>(`/api/v1/tencent/browser/session/${sessionId}/summary`)
|
||||
}
|
||||
|
||||
export function refreshTencentBrowserSessionPage(sessionId: string) {
|
||||
return apiPost<TencentBrowserSessionData>(`/api/v1/tencent/browser/session/${sessionId}/refresh`)
|
||||
}
|
||||
|
||||
export function removeTencentBrowserSession(sessionId: string) {
|
||||
return apiDelete<Record<string, unknown>>(`/api/v1/tencent/browser/session/${sessionId}`)
|
||||
}
|
||||
Reference in New Issue
Block a user