19 lines
594 B
TypeScript
19 lines
594 B
TypeScript
import { pool } from './db/pool.js';
|
|
|
|
type AuditInput = {
|
|
actorId?: string;
|
|
action: string;
|
|
subjectType: string;
|
|
subjectId?: string;
|
|
metadata?: Record<string, unknown>;
|
|
ipAddress?: string;
|
|
};
|
|
|
|
export const recordAudit = async (input: AuditInput) => {
|
|
await pool.query(
|
|
`insert into audit_logs (actor_id, action, subject_type, subject_id, metadata, ip_address)
|
|
values ($1, $2, $3, $4::uuid, $5::jsonb, $6::inet)`,
|
|
[input.actorId ?? null, input.action, input.subjectType, input.subjectId ?? null, JSON.stringify(input.metadata ?? {}), input.ipAddress ?? null],
|
|
);
|
|
};
|