Files
plantillas-proyectos/frontend/src/lib/api/dashboard/a76/audit_log.ts

74 lines
2.4 KiB
TypeScript

import { api } from '$lib/api';
const BASE_PATH = '/v1/a76/audit-log';
export interface AuditLog {
spec_id: number;
reference: string;
procedure: string; // "Procedimiento"
movement: string; // "Movimiento"
username: string;
date: string; // "YYYY-MM-DD"
time: string; // "HH:MM:SS"
timestamp: string; // ISO
system: string;
operation_type?: string;
table_name?: string;
old_values?: any;
new_values?: any;
}
export interface AuditLogResponse {
data: AuditLog[];
total: number;
page: number;
page_size: number;
}
export interface AuditLogParams {
page?: number;
page_size?: number;
search?: string;
username?: string;
procedure?: string;
reference?: string;
date_from?: string;
date_to?: string;
}
export const AuditLogAPI = {
getLogs: async (params: AuditLogParams = {}): Promise<AuditLogResponse> => {
const query = new URLSearchParams();
if (params.page) query.append('page', params.page.toString());
if (params.page_size) query.append('page_size', params.page_size.toString());
if (params.search) query.append('search', params.search);
if (params.username) query.append('username', params.username);
if (params.procedure) query.append('procedure', params.procedure);
if (params.reference) query.append('reference', params.reference);
if (params.date_from) query.append('date_from', params.date_from);
if (params.date_to) query.append('date_to', params.date_to);
const response = await api.get<AuditLogResponse>(`${BASE_PATH}/bitacora?${query.toString()}`);
if (response.error || !response.data) {
throw new Error(response.error || 'Failed to fetch audit logs');
}
return response.data;
},
getProcedures: async (): Promise<string[]> => {
const response = await api.get<string[]>(`${BASE_PATH}/bitacora/procedimientos`);
if (response.error || !response.data) {
throw new Error(response.error || 'Failed to fetch procedures');
}
return response.data;
},
getDetail: async (specId: number): Promise<AuditLog> => {
const response = await api.get<AuditLog>(`${BASE_PATH}/bitacora/${specId}/detalle`);
if (response.error || !response.data) {
throw new Error(response.error || 'Failed to fetch audit log detail');
}
return response.data;
}
};