internal/adminapi/audit_handler.go
Rama main · réplica de lectura del repositorio original.
package adminapi
import (
"net/http"
"sync"
"time"
)
type AuditEntry struct {
ActionName string `json:"actionName"`
Body string `json:"body"`
CreatedAt time.Time `json:"createdAt"`
}
type AuditHandler struct {
mutex sync.RWMutex
auditEntries []AuditEntry
}
func NewAuditHandler() *AuditHandler {
return &AuditHandler{
auditEntries: []AuditEntry{},
}
}
func (auditHandler *AuditHandler) RecordPolicySave(backupPath string) {
auditHandler.mutex.Lock()
defer auditHandler.mutex.Unlock()
auditHandler.auditEntries = append(auditHandler.auditEntries, AuditEntry{
ActionName: "policy.saved",
Body: backupPath,
CreatedAt: time.Now(),
})
}
func (auditHandler *AuditHandler) HandleListAudit(responseWriter http.ResponseWriter, request *http.Request) {
auditHandler.mutex.RLock()
defer auditHandler.mutex.RUnlock()
writeJSON(responseWriter, http.StatusOK, auditHandler.auditEntries)
}