web: display CheckList audit events
This commit is contained in:
@@ -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}`);
|
||||
|
||||
Reference in New Issue
Block a user