From ffb64f1d65e8dfb5fcf3bf8939e552e611f0e1e4 Mon Sep 17 00:00:00 2001 From: Anton Nesterov Date: Thu, 15 Aug 2024 09:19:33 +0200 Subject: [PATCH] [feat] add filter registry Signed-off-by: Anton Nesterov --- pkg/filters/registry.go | 6 ++++++ pkg/filters/unit_test.go | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/filters/registry.go b/pkg/filters/registry.go index 03c3644..c4e6bbe 100644 --- a/pkg/filters/registry.go +++ b/pkg/filters/registry.go @@ -22,6 +22,12 @@ var FilterRegistry = map[string]IFilter{ "NotLike": &NotLike{}, } +// RegisterFilter registers a new filter for a given name. +// `name` is the name of the filter, and `filter` is an empty instance (&reference) of the IFilter. +func RegisterFilter(name string, filter IFilter) { + FilterRegistry[name] = filter +} + func Convert(ctx Dialect, data interface{}) (string, []interface{}) { for _, impl := range FilterRegistry { filter := impl.FromJSON(data) diff --git a/pkg/filters/unit_test.go b/pkg/filters/unit_test.go index d776ec8..23b0575 100644 --- a/pkg/filters/unit_test.go +++ b/pkg/filters/unit_test.go @@ -7,7 +7,7 @@ import ( adapter "l12.xyz/dal/adapter" ) -type SQLiteContext = adapter.SQLite +type SQLiteContext = adapter.CommonDialect func TestEq(t *testing.T) { ctx := SQLiteContext{