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