36 lines
845 B
TypeScript
36 lines
845 B
TypeScript
import { apiClient } from './client'
|
|
|
|
export interface AdminAuditLog {
|
|
id: number
|
|
actor_type: string
|
|
actor_id: number
|
|
actor_username: string
|
|
actor_nickname: string
|
|
action: string
|
|
biz_type: string
|
|
biz_id?: number
|
|
ip: string
|
|
user_agent: string
|
|
detail?: Record<string, unknown> | null
|
|
created_at: string
|
|
}
|
|
|
|
export interface AdminAuditQuery {
|
|
actor_id?: string
|
|
action?: string
|
|
biz_type?: string
|
|
limit?: number
|
|
}
|
|
|
|
interface ApiResponse<T> {
|
|
code: string
|
|
message: string
|
|
data: T
|
|
}
|
|
|
|
export async function fetchAdminAuditLogs(query: AdminAuditQuery = {}) {
|
|
const params = Object.fromEntries(Object.entries(query).filter(([, value]) => value !== '' && value !== undefined))
|
|
const { data } = await apiClient.get<ApiResponse<{ items: AdminAuditLog[] }>>('/admin/audit-logs', { params })
|
|
return data.data.items
|
|
}
|