parent
3c0f3a7001
commit
dba325af6f
web/src/app
@ -87,9 +87,9 @@ export default function MapfixInfoPage() {
|
||||
|
||||
const comments:Comment[] = auditEvents.map((auditEvent) => {
|
||||
return {
|
||||
date: auditEvent.created_at,
|
||||
name: auditEvent.user.toString(),
|
||||
comment: decodeAuditEvent(auditEvent).event_data.toString(),
|
||||
date: auditEvent.CreatedAt,
|
||||
name: auditEvent.User.toString(),
|
||||
comment: decodeAuditEvent(auditEvent).EventData.toString(),
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -11,13 +11,13 @@ export enum AuditEventType {
|
||||
|
||||
// Discriminated union types for each event
|
||||
export type AuditEventData =
|
||||
| { event_type: AuditEventType.Action; event_data: AuditEventDataAction }
|
||||
| { event_type: AuditEventType.Comment; event_data: AuditEventDataComment }
|
||||
| { event_type: AuditEventType.ChangeModel; event_data: AuditEventDataChangeModel }
|
||||
| { event_type: AuditEventType.ChangeValidatedModel; event_data: AuditEventDataChangeValidatedModel; }
|
||||
| { event_type: AuditEventType.ChangeDisplayName; event_data: AuditEventDataChangeName; }
|
||||
| { event_type: AuditEventType.ChangeCreator; event_data: AuditEventDataChangeName; }
|
||||
| { event_type: AuditEventType.Error; event_data: AuditEventDataError };
|
||||
| { EventType: AuditEventType.Action; EventData: AuditEventDataAction }
|
||||
| { EventType: AuditEventType.Comment; EventData: AuditEventDataComment }
|
||||
| { EventType: AuditEventType.ChangeModel; EventData: AuditEventDataChangeModel }
|
||||
| { EventType: AuditEventType.ChangeValidatedModel; EventData: AuditEventDataChangeValidatedModel; }
|
||||
| { EventType: AuditEventType.ChangeDisplayName; EventData: AuditEventDataChangeName; }
|
||||
| { EventType: AuditEventType.ChangeCreator; EventData: AuditEventDataChangeName; }
|
||||
| { EventType: AuditEventType.Error; EventData: AuditEventDataError };
|
||||
|
||||
// Concrete data interfaces
|
||||
export interface AuditEventDataAction {
|
||||
@ -51,51 +51,51 @@ export interface AuditEventDataError {
|
||||
|
||||
// Full audit event type (mirroring the Go struct)
|
||||
export interface AuditEvent {
|
||||
id: number;
|
||||
created_at: string; // ISO string, can convert to Date if needed
|
||||
user: number;
|
||||
resource_type: string; // Assuming this is a string enum or similar
|
||||
resource_id: number;
|
||||
event_type: AuditEventType;
|
||||
event_data: unknown; // You'll decode this into a specific AuditEventData based on `event_type`
|
||||
Id: number;
|
||||
CreatedAt: string; // ISO string, can convert to Date if needed
|
||||
User: number;
|
||||
ResourceType: string; // Assuming this is a string enum or similar
|
||||
ResourceId: number;
|
||||
EventType: AuditEventType;
|
||||
EventData: unknown; // You'll decode this into a specific AuditEventData based on `event_type`
|
||||
}
|
||||
|
||||
// Optional: decode function to parse event_data into strongly-typed structure
|
||||
export function decodeAuditEvent(event: AuditEvent): AuditEventData {
|
||||
switch (event.event_type) {
|
||||
switch (event.EventType) {
|
||||
case AuditEventType.Action:
|
||||
return {
|
||||
event_type: event.event_type,
|
||||
event_data: event.event_data as AuditEventDataAction,
|
||||
EventType: event.EventType,
|
||||
EventData: event.EventData as AuditEventDataAction,
|
||||
};
|
||||
case AuditEventType.Comment:
|
||||
return {
|
||||
event_type: event.event_type,
|
||||
event_data: event.event_data as AuditEventDataComment,
|
||||
EventType: event.EventType,
|
||||
EventData: event.EventData as AuditEventDataComment,
|
||||
};
|
||||
case AuditEventType.ChangeModel:
|
||||
return {
|
||||
event_type: event.event_type,
|
||||
event_data: event.event_data as AuditEventDataChangeModel,
|
||||
EventType: event.EventType,
|
||||
EventData: event.EventData as AuditEventDataChangeModel,
|
||||
};
|
||||
case AuditEventType.ChangeValidatedModel:
|
||||
return {
|
||||
event_type: event.event_type,
|
||||
event_data:
|
||||
event.event_data as AuditEventDataChangeValidatedModel,
|
||||
EventType: event.EventType,
|
||||
EventData:
|
||||
event.EventData as AuditEventDataChangeValidatedModel,
|
||||
};
|
||||
case AuditEventType.ChangeDisplayName:
|
||||
case AuditEventType.ChangeCreator:
|
||||
return {
|
||||
event_type: event.event_type,
|
||||
event_data: event.event_data as AuditEventDataChangeName,
|
||||
EventType: event.EventType,
|
||||
EventData: event.EventData as AuditEventDataChangeName,
|
||||
};
|
||||
case AuditEventType.Error:
|
||||
return {
|
||||
event_type: event.event_type,
|
||||
event_data: event.event_data as AuditEventDataError,
|
||||
EventType: event.EventType,
|
||||
EventData: event.EventData as AuditEventDataError,
|
||||
};
|
||||
default:
|
||||
throw new Error(`Unknown event_type: ${event.event_type}`);
|
||||
throw new Error(`Unknown EventType: ${event.EventType}`);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user