1package adminui
2
3import (
4 "context"
5
6 "tug/internal/service/admin"
7 "tug/internal/transport/web"
8)
9
10func (b Backend) Audit(ctx context.Context, q web.AdminAuditQuery) (web.AdminAuditPage, error) {
11 query := admin.AuditQuery{Actor: q.Actor, Action: q.Action, Subject: q.Subject, Address: q.Address, From: q.From, To: q.To}
12 if q.Older != nil {
13 query.Older = &admin.AuditCursor{At: q.Older.At, ID: q.Older.ID}
14 }
15 if q.Newer != nil {
16 query.Newer = &admin.AuditCursor{At: q.Newer.At, ID: q.Newer.ID}
17 }
18 p, err := b.service.Audit(ctx, query)
19 if err != nil {
20 return web.AdminAuditPage{}, mapError(err)
21 }
22 out := web.AdminAuditPage{Newer: p.Newer, Older: p.Older, Retention: p.Retention}
23 for _, r := range p.Rows {
24 out.Rows = append(out.Rows, web.AdminAuditRow{ID: r.ID, At: r.At, Actor: r.Actor, Action: r.Action, Subject: r.Subject, Address: r.Address, Detail: r.Detail})
25 }
26 return out, nil
27}