added pagination to audit logs

This commit is contained in:
2026-02-11 22:18:02 +11:00
parent 6e2053175d
commit 2afa32dd63
5 changed files with 47 additions and 85 deletions

View File

@@ -20,11 +20,21 @@ type List[T any] struct {
}
type Filter struct {
Field string
Value any
Operator string
Field string
Value any
Comparator Comparator
}
type Comparator string
const (
Equal Comparator = "="
Less Comparator = "<"
LessEqual Comparator = "<="
Greater Comparator = ">"
GreaterEqual Comparator = ">="
)
type ListFilter struct {
filters []Filter
}
@@ -33,8 +43,24 @@ func NewListFilter() *ListFilter {
return &ListFilter{[]Filter{}}
}
func (f *ListFilter) Add(field, operator string, value any) {
f.filters = append(f.filters, Filter{field, value, "="})
func (f *ListFilter) Equals(field string, value any) {
f.filters = append(f.filters, Filter{field, value, Equal})
}
func (f *ListFilter) LessThan(field string, value any) {
f.filters = append(f.filters, Filter{field, value, Less})
}
func (f *ListFilter) LessEqualThan(field string, value any) {
f.filters = append(f.filters, Filter{field, value, LessEqual})
}
func (f *ListFilter) GreaterThan(field string, value any) {
f.filters = append(f.filters, Filter{field, value, Greater})
}
func (f *ListFilter) GreaterEqualThan(field string, value any) {
f.filters = append(f.filters, Filter{field, value, GreaterEqual})
}
func GetList[T any](tx bun.Tx) *listgetter[T] {
@@ -63,7 +89,7 @@ func (l *listgetter[T]) Relation(name string, apply ...func(*bun.SelectQuery) *b
func (l *listgetter[T]) Filter(filters ...Filter) *listgetter[T] {
for _, filter := range filters {
l.q = l.q.Where("? ? ?", bun.Ident(filter.Field), bun.Safe(filter.Operator), filter.Value)
l.q = l.q.Where("? ? ?", bun.Ident(filter.Field), bun.Safe(filter.Comparator), filter.Value)
}
return l
}