UNPKG

@damourlabs/euro-clinical-trials

Version:

A Nuxt 3 application for visualizing and managing clinical trials data in Europe, built with modern web technologies.

43 lines (31 loc) 1.17 kB
// Plugin to handle audit loggin for GDPR compliance import type { AuditLogDetails, AuditLogEvent } from "~/models/audits"; import type { AuditActionType, AuditEntityTypeType } from "~/server/database/schema/enums"; export const useAuditLogger = () => { const auditLogUrl = '/api/audit/log'; const auditLog = async (action: AuditActionType, entityType: AuditEntityTypeType, auditLogDetails: AuditLogDetails) => { if (!action || !auditLogDetails) { console.error('Invalid audit log parameters:', { action, auditLogDetails }); return; } // TODO: Implement more robust input validation const auditLogEvent: AuditLogEvent = { id: crypto.randomUUID(), action: action, entityType: entityType, details: auditLogDetails, timestamp: new Date().toISOString(), }; try { await $fetch(auditLogUrl, { method: 'POST', body: auditLogEvent }) } catch (error) { console.error('Audit log error:', error) } } return { auditLog } }