import { Component, inject, signal } from '@angular/core';
import { ApiClientService, type AuditLogDto } from '@boilerplate/api-client';
@Component({
standalone: true,
template: `
@for (entry of entries(); track entry.id) {
{{ labels[entry.action] || entry.action }}
{{ entry.createdAt }} ยท Objekt: {{ entry.targetType }} {{ entry.targetId }}
Request-ID: {{ entry.requestId }}
}
`,
})
export class AuditPageComponent {
private readonly api = inject(ApiClientService);
readonly entries = signal([]);
readonly labels: Record = {
USER_ACTIVATED: 'Benutzer aktiviert',
USER_DEACTIVATED: 'Benutzer deaktiviert',
USER_ROLE_ASSIGNED: 'Rolle zugewiesen',
USER_ROLE_REMOVED: 'Rolle entfernt',
ROLE_CREATED: 'Rolle erstellt',
ROLE_UPDATED: 'Rolle aktualisiert',
ROLE_DELETED: 'Rolle geloescht',
ROLE_PERMISSIONS_UPDATED: 'Permissions aktualisiert',
SESSION_REVOKED: 'Session beendet',
ALL_USER_SESSIONS_REVOKED: 'Alle Sessions beendet',
};
constructor() {
this.api.audit().subscribe((page) => this.entries.set(page.items));
}
}