added pagination to audit logs
This commit is contained in:
@@ -50,31 +50,31 @@ func NewAuditLogFilter() *AuditLogFilter {
|
||||
}
|
||||
|
||||
func (a *AuditLogFilter) UserID(id int) *AuditLogFilter {
|
||||
a.Add("al.user_id", "=", id)
|
||||
a.Equals("al.user_id", id)
|
||||
return a
|
||||
}
|
||||
|
||||
func (a *AuditLogFilter) Action(action string) *AuditLogFilter {
|
||||
a.Add("al.action", "=", action)
|
||||
a.Equals("al.action", action)
|
||||
return a
|
||||
}
|
||||
|
||||
func (a *AuditLogFilter) ResourceType(resourceType string) *AuditLogFilter {
|
||||
a.Add("al.resource_type", "=", resourceType)
|
||||
a.Equals("al.resource_type", resourceType)
|
||||
return a
|
||||
}
|
||||
|
||||
func (a *AuditLogFilter) Result(result string) *AuditLogFilter {
|
||||
a.Add("al.result", "=", result)
|
||||
a.Equals("al.result", result)
|
||||
return a
|
||||
}
|
||||
|
||||
func (a *AuditLogFilter) DateRange(start, end int64) *AuditLogFilter {
|
||||
if start > 0 {
|
||||
a.Add("al.created_at", ">=", start)
|
||||
a.GreaterEqualThan("al.created_at", start)
|
||||
}
|
||||
if end > 0 {
|
||||
a.Add("al.created_at", "<=", end)
|
||||
a.LessEqualThan("al.created_at", end)
|
||||
}
|
||||
return a
|
||||
}
|
||||
@@ -83,7 +83,7 @@ func (a *AuditLogFilter) DateRange(start, end int64) *AuditLogFilter {
|
||||
func GetAuditLogs(ctx context.Context, tx bun.Tx, pageOpts *PageOpts, filters *AuditLogFilter) (*List[AuditLog], error) {
|
||||
defaultPageOpts := &PageOpts{
|
||||
Page: 1,
|
||||
PerPage: 50,
|
||||
PerPage: 15,
|
||||
Order: bun.OrderDesc,
|
||||
OrderBy: "created_at",
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user