Raw
 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}