web: display CheckList audit events

This commit is contained in:
2025-06-11 18:14:38 -07:00
parent 19900b1a77
commit ccd43ede81

View File

@@ -9,6 +9,7 @@ export const enum AuditEventType {
ChangeDisplayName = 4,
ChangeCreator = 5,
Error = 6,
CheckList = 7,
}
// Discriminated union types for each event
@@ -19,7 +20,8 @@ export type AuditEventData =
| { EventType: AuditEventType.ChangeValidatedModel; EventData: AuditEventDataChangeValidatedModel; }
| { EventType: AuditEventType.ChangeDisplayName; EventData: AuditEventDataChangeName; }
| { EventType: AuditEventType.ChangeCreator; EventData: AuditEventDataChangeName; }
| { EventType: AuditEventType.Error; EventData: AuditEventDataError };
| { EventType: AuditEventType.Error; EventData: AuditEventDataError; }
| { EventType: AuditEventType.CheckList; EventData: AuditEventDataCheckList; };
// Concrete data interfaces
export interface AuditEventDataAction {
@@ -51,6 +53,15 @@ export interface AuditEventDataError {
error: string;
}
export interface AuditEventDataCheck {
name: string
summary: string
passed: boolean
}
export interface AuditEventDataCheckList {
check_list: [AuditEventDataCheck];
}
// Full audit event type (mirroring the Go struct)
export interface AuditEvent {
Id: number;
@@ -87,6 +98,13 @@ export function decodeAuditEvent(event: AuditEvent): string {
}case AuditEventType.Error:{
const data = event.EventData as AuditEventDataError;
return `Error: ${data.error}`;
}case AuditEventType.CheckList:{
const data = event.EventData as AuditEventDataCheckList;
const failedSummaries = data.check_list
.filter(check => !check.passed)
.map(check => check.summary)
.join('; ');
return `CheckList: ${failedSummaries}`;
}
default:
throw new Error(`Unknown EventType: ${event.EventType}`);