From b72e67badc0e60db9447b9f6533c5ea27b2d0326 Mon Sep 17 00:00:00 2001 From: Anton Nesterov Date: Fri, 9 Aug 2024 16:56:38 +0200 Subject: [PATCH] [ref] move sql context to adaper pkg Signed-off-by: Anton Nesterov --- pkg/{filters/context.go => adapter/SQLiteCtx.go} | 2 +- pkg/adapter/go.mod | 11 +++++++++++ pkg/adapter/go.sum | 2 ++ pkg/adapter/types.go | 10 ++++++++++ pkg/dal/convert_fields_test.go | 8 +++----- pkg/dal/convert_find_test.go | 8 +++----- pkg/dal/convert_insert_test.go | 4 +--- pkg/dal/convert_join_test.go | 10 ++++++---- pkg/dal/go.mod | 4 ++++ pkg/dal/types.go | 5 +++-- pkg/filters/go.mod | 4 ++++ pkg/filters/types.go | 11 ++++------- pkg/filters/unit_test.go | 4 ++++ 13 files changed, 56 insertions(+), 27 deletions(-) rename pkg/{filters/context.go => adapter/SQLiteCtx.go} (98%) create mode 100644 pkg/adapter/go.mod create mode 100644 pkg/adapter/go.sum create mode 100644 pkg/adapter/types.go diff --git a/pkg/filters/context.go b/pkg/adapter/SQLiteCtx.go similarity index 98% rename from pkg/filters/context.go rename to pkg/adapter/SQLiteCtx.go index 03cb338..734fcbc 100644 --- a/pkg/filters/context.go +++ b/pkg/adapter/SQLiteCtx.go @@ -1,4 +1,4 @@ -package filters +package adapter import ( "strconv" diff --git a/pkg/adapter/go.mod b/pkg/adapter/go.mod new file mode 100644 index 0000000..9623592 --- /dev/null +++ b/pkg/adapter/go.mod @@ -0,0 +1,11 @@ +module l12.xyz/dal/adapter + +go 1.22.6 + +replace l12.xyz/dal/utils v0.0.0 => ../utils + +replace l12.xyz/dal/filters v0.0.0 => ../filters + +require l12.xyz/dal/utils v0.0.0 + +require github.com/pkg/errors v0.9.1 // indirect diff --git a/pkg/adapter/go.sum b/pkg/adapter/go.sum new file mode 100644 index 0000000..7c401c3 --- /dev/null +++ b/pkg/adapter/go.sum @@ -0,0 +1,2 @@ +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= diff --git a/pkg/adapter/types.go b/pkg/adapter/types.go new file mode 100644 index 0000000..8ac8019 --- /dev/null +++ b/pkg/adapter/types.go @@ -0,0 +1,10 @@ +package adapter + +type CtxOpts map[string]string + +type Context interface { + New(opts CtxOpts) Context + GetTableName() string + GetFieldName() string + NormalizeValue(interface{}) interface{} +} diff --git a/pkg/dal/convert_fields_test.go b/pkg/dal/convert_fields_test.go index 405e1b7..9397b52 100644 --- a/pkg/dal/convert_fields_test.go +++ b/pkg/dal/convert_fields_test.go @@ -2,12 +2,10 @@ package dal import ( "testing" - - filters "l12.xyz/dal/filters" ) func TestConvertFieldsBool(t *testing.T) { - ctx := filters.SQLiteContext{ + ctx := SQLiteContext{ TableAlias: "t", FieldName: "test", } @@ -24,7 +22,7 @@ func TestConvertFieldsBool(t *testing.T) { } func TestConvertFieldsInt(t *testing.T) { - ctx := filters.SQLiteContext{ + ctx := SQLiteContext{ TableAlias: "t", FieldName: "test", } @@ -41,7 +39,7 @@ func TestConvertFieldsInt(t *testing.T) { } func TestConvertFieldsStr(t *testing.T) { - ctx := filters.SQLiteContext{ + ctx := SQLiteContext{ TableAlias: "t", FieldName: "test", } diff --git a/pkg/dal/convert_find_test.go b/pkg/dal/convert_find_test.go index de8c585..2f549c3 100644 --- a/pkg/dal/convert_find_test.go +++ b/pkg/dal/convert_find_test.go @@ -2,8 +2,6 @@ package dal import ( "testing" - - f "l12.xyz/dal/filters" ) func TestConvertFind(t *testing.T) { @@ -13,7 +11,7 @@ func TestConvertFind(t *testing.T) { "$gt": 1, }, } - ctx := f.SQLiteContext{ + ctx := SQLiteContext{ TableAlias: "t", } result := CovertFind(ctx, find) @@ -37,7 +35,7 @@ func TestConvertFindAnd(t *testing.T) { }, }, } - ctx := f.SQLiteContext{ + ctx := SQLiteContext{ TableAlias: "t", } result := CovertFind(ctx, find) @@ -61,7 +59,7 @@ func TestConvertFindOr(t *testing.T) { }, }, } - ctx := f.SQLiteContext{ + ctx := SQLiteContext{ TableAlias: "t", } result := CovertFind(ctx, find) diff --git a/pkg/dal/convert_insert_test.go b/pkg/dal/convert_insert_test.go index c816851..46be694 100644 --- a/pkg/dal/convert_insert_test.go +++ b/pkg/dal/convert_insert_test.go @@ -3,12 +3,10 @@ package dal import ( "fmt" "testing" - - filters "l12.xyz/dal/filters" ) func TestConvertInsert(t *testing.T) { - ctx := filters.SQLiteContext{ + ctx := SQLiteContext{ TableName: "test", TableAlias: "t", } diff --git a/pkg/dal/convert_join_test.go b/pkg/dal/convert_join_test.go index f3624d1..daf83e6 100644 --- a/pkg/dal/convert_join_test.go +++ b/pkg/dal/convert_join_test.go @@ -3,9 +3,11 @@ package dal import ( "testing" - f "l12.xyz/dal/filters" + adapter "l12.xyz/dal/adapter" ) +type SQLiteContext = adapter.SQLiteContext + func TestJoin(t *testing.T) { j := Join{ For: "artist a", @@ -14,7 +16,7 @@ func TestJoin(t *testing.T) { }, As: "LEFT", } - ctx := f.SQLiteContext{ + ctx := SQLiteContext{ TableAlias: "t", } result := j.Convert(ctx) @@ -34,7 +36,7 @@ func TestConvertJoin(t *testing.T) { }, }, } - ctx := f.SQLiteContext{ + ctx := SQLiteContext{ TableAlias: "t", } result := ConvertJoin(ctx, joins...) @@ -51,7 +53,7 @@ func TestConvertMap(t *testing.T) { joins := []interface{}{ Map{"$for": "artist a", "$do": Map{"a.impl": "t.impl"}, "$as": "LEFT"}, } - ctx := f.SQLiteContext{ + ctx := SQLiteContext{ TableAlias: "t", } result := ConvertJoin(ctx, joins...) diff --git a/pkg/dal/go.mod b/pkg/dal/go.mod index 8c2c383..23cd83f 100644 --- a/pkg/dal/go.mod +++ b/pkg/dal/go.mod @@ -11,3 +11,7 @@ require l12.xyz/dal/filters v0.0.0 require github.com/pkg/errors v0.9.1 // indirect replace l12.xyz/dal/filters v0.0.0 => ../filters + +require l12.xyz/dal/adapter v0.0.0 + +replace l12.xyz/dal/adapter v0.0.0 => ../adapter \ No newline at end of file diff --git a/pkg/dal/types.go b/pkg/dal/types.go index 8fa500e..6aa72bf 100644 --- a/pkg/dal/types.go +++ b/pkg/dal/types.go @@ -1,6 +1,7 @@ package dal import ( + adapter "l12.xyz/dal/adapter" filters "l12.xyz/dal/filters" ) @@ -10,5 +11,5 @@ type Find = filters.Find type Query = filters.Find type Filter = filters.Filter type Is = filters.Filter -type Context = filters.Context -type CtxOpts = filters.CtxOpts +type Context = adapter.Context +type CtxOpts = adapter.CtxOpts diff --git a/pkg/filters/go.mod b/pkg/filters/go.mod index 2aeb161..bd7a2a3 100644 --- a/pkg/filters/go.mod +++ b/pkg/filters/go.mod @@ -7,3 +7,7 @@ require github.com/pkg/errors v0.9.1 // indirect require l12.xyz/dal/utils v0.0.0 replace l12.xyz/dal/utils v0.0.0 => ../utils + +require l12.xyz/dal/adapter v0.0.0 + +replace l12.xyz/dal/adapter v0.0.0 => ../adapter diff --git a/pkg/filters/types.go b/pkg/filters/types.go index dc40f79..4eb818b 100644 --- a/pkg/filters/types.go +++ b/pkg/filters/types.go @@ -1,12 +1,9 @@ package filters -type CtxOpts map[string]string -type Context interface { - New(opts CtxOpts) Context - GetTableName() string - GetFieldName() string - NormalizeValue(interface{}) interface{} -} +import "l12.xyz/dal/adapter" + +type CtxOpts = adapter.CtxOpts +type Context = adapter.Context type IFilter interface { ToSQLPart(ctx Context) string diff --git a/pkg/filters/unit_test.go b/pkg/filters/unit_test.go index c0ed4e1..2077ee6 100644 --- a/pkg/filters/unit_test.go +++ b/pkg/filters/unit_test.go @@ -2,8 +2,12 @@ package filters import ( "testing" + + adapter "l12.xyz/dal/adapter" ) +type SQLiteContext = adapter.SQLiteContext + func TestEq(t *testing.T) { ctx := SQLiteContext{ TableAlias: "t",