From 43fa498b54a74295fd09deb0b9a41c225c5427ab Mon Sep 17 00:00:00 2001 From: renaldybrada Date: Wed, 28 Jan 2026 08:25:21 +0700 Subject: [PATCH] fixing filter query search + base filtering --- internal/domain/reference/dokter/repository.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/domain/reference/dokter/repository.go b/internal/domain/reference/dokter/repository.go index f00e1cd..d82aaf9 100644 --- a/internal/domain/reference/dokter/repository.go +++ b/internal/domain/reference/dokter/repository.go @@ -71,13 +71,9 @@ func (r kategoriRepo) SearchableListDokter(c *gin.Context) ([]DokterModel, error }, } - // filtering KSM is not null - ksmFilter := []queryUtils.DynamicFilter{ - {Column: "dp.KSM", Operator: queryUtils.OpNotNull}, - } - query.Filters = append(query.Filters, queryUtils.FilterGroup{Filters: ksmFilter, LogicOp: "AND"}) - - // TODO : build query KSM_FILTER AND (SEARCH_FILTER), current condition are all filter with OR operator + // base filtering + var baseFilter []queryUtils.DynamicFilter + baseFilter = append(baseFilter, queryUtils.DynamicFilter{Column: "dp.KSM", Operator: queryUtils.OpNotNull}) // filtering search results if search != "" { @@ -87,9 +83,14 @@ func (r kategoriRepo) SearchableListDokter(c *gin.Context) ([]DokterModel, error {Column: "dp.Nama_belakang", Operator: queryUtils.OpILike, Value: "%" + search + "%"}, {Column: "dk.Nama_ksm", Operator: queryUtils.OpILike, Value: "%" + search + "%"}, } + query.Filters = append(query.Filters, queryUtils.FilterGroup{Filters: searchFilters, LogicOp: "OR"}) } + if len(baseFilter) > 0 { + query.Filters = append(query.Filters, queryUtils.FilterGroup{Filters: baseFilter, LogicOp: "AND"}) + } + dbconn, err := r.db.GetSQLXDB(DB_NAME) if err != nil { log.Fatalf("unable to connect db %s", err)