From 2118a8ab350229b5ee8fb81076e78cb34ce57ee6 Mon Sep 17 00:00:00 2001 From: itzaname Date: Tue, 3 Mar 2026 20:55:05 -0500 Subject: [PATCH] Add string search for display_name --- pkg/datastore/filter.go | 8 ++++++++ pkg/datastore/gormstore/maps.go | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/pkg/datastore/filter.go b/pkg/datastore/filter.go index 43f0d67..8fe90e0 100644 --- a/pkg/datastore/filter.go +++ b/pkg/datastore/filter.go @@ -23,6 +23,14 @@ func (q OptionalMap) AddNotNil(column string, value interface{}) OptionalMap { return q } +func (q OptionalMap) Pop(column string) (interface{}, bool) { + value, ok := q.filter[column] + if ok { + delete(q.filter, column) + } + return value, ok +} + func (q OptionalMap) Map() map[string]interface{} { return q.filter } diff --git a/pkg/datastore/gormstore/maps.go b/pkg/datastore/gormstore/maps.go index 647e4f2..5255e2e 100644 --- a/pkg/datastore/gormstore/maps.go +++ b/pkg/datastore/gormstore/maps.go @@ -84,7 +84,11 @@ func (env *Maps) GetAll(ctx context.Context) ([]model.Map, error) { func (env *Maps) List(ctx context.Context, filters datastore.OptionalMap, page model.Page) ([]model.Map, error) { var events []model.Map - if err := env.db.Where(filters.Map()).Offset(int((page.Number - 1) * page.Size)).Limit(int(page.Size)).Find(&events).Error; err != nil { + tx := env.db.Model(&model.Map{}) + if displayName, ok := filters.Pop("display_name"); ok { + tx = tx.Where("display_name ILIKE ?", "%"+displayName.(string)+"%") + } + if err := tx.Where(filters.Map()).Offset(int((page.Number - 1) * page.Size)).Limit(int(page.Size)).Find(&events).Error; err != nil { return nil, err } -- 2.49.1