/** * Operation Log API Hooks */ import { get } from '@/service/base' import type { OperationLogListResponse, OperationLogQueryParams, } from '@/models/operation-log' import { useQuery } from '@tanstack/react-query' const NAME_SPACE = 'operation-log' // Query Keys export const useOperationLogListKey = ( datasetId: string, documentId?: string, params?: OperationLogQueryParams, ) => { return [NAME_SPACE, 'list', datasetId, documentId, params] } // Queries /** * Get operation logs for a specific document */ export const useDocumentOperationLogs = ( datasetId: string, documentId: string, params?: OperationLogQueryParams, ) => { return useQuery({ queryKey: useOperationLogListKey(datasetId, documentId, params), queryFn: () => { const queryParams = new URLSearchParams() if (params?.action) queryParams.append('action', params.action) if (params?.start_date) queryParams.append('start_date', params.start_date) if (params?.end_date) queryParams.append('end_date', params.end_date) if (params?.page) queryParams.append('page', params.page.toString()) if (params?.per_page) queryParams.append('per_page', params.per_page.toString()) return get( `/datasets/${datasetId}/documents/${documentId}/operation-logs?${queryParams.toString()}`, ) }, enabled: !!(datasetId && documentId), }) } /** * Get operation logs for an entire dataset */ export const useDatasetOperationLogs = ( datasetId: string, params?: OperationLogQueryParams, ) => { return useQuery({ queryKey: useOperationLogListKey(datasetId, undefined, params), queryFn: () => { const queryParams = new URLSearchParams() if (params?.resource_type) queryParams.append('resource_type', params.resource_type) if (params?.action) queryParams.append('action', params.action) if (params?.start_date) queryParams.append('start_date', params.start_date) if (params?.end_date) queryParams.append('end_date', params.end_date) if (params?.page) queryParams.append('page', params.page.toString()) if (params?.per_page) queryParams.append('per_page', params.per_page.toString()) return get( `/datasets/${datasetId}/operation-logs?${queryParams.toString()}`, ) }, enabled: !!datasetId, }) }