From d0270702df725c5cd1dc1bb0e2f3756f09df4c9b Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Mon, 28 Feb 2022 08:55:48 -0800 Subject: [PATCH] #4222: fixed json string to postgres conversion --- .../internal/db2/history/filter_rules.go | 5 +-- .../internal/db2/history/filter_rules_test.go | 36 +++++++++---------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/services/horizon/internal/db2/history/filter_rules.go b/services/horizon/internal/db2/history/filter_rules.go index 4786863383..eaa11e3be9 100644 --- a/services/horizon/internal/db2/history/filter_rules.go +++ b/services/horizon/internal/db2/history/filter_rules.go @@ -2,6 +2,7 @@ package history import ( "context" + "fmt" sq "github.com/Masterminds/squirrel" "github.com/stellar/go/support/errors" @@ -61,9 +62,9 @@ func (q *Q) DeleteFilterByName(ctx context.Context, name string) error { func (q *Q) UpsertFilterConfig(ctx context.Context, config FilterConfig) error { updateCols := map[string]interface{}{ - filterRulesLastModifiedColumnName: sq.Expr("extract(epoch from now() at time zone 'utc')"), + filterRulesLastModifiedColumnName: sq.Expr(`extract(epoch from now() at time zone 'utc')`), filterRulesEnabledColumnName: config.Enabled, - filterRulesColumnName: config.Rules, + filterRulesColumnName: sq.Expr(fmt.Sprintf(`'%v'::json`, config.Rules)), filterRulesTypeColumnName: config.Name, } diff --git a/services/horizon/internal/db2/history/filter_rules_test.go b/services/horizon/internal/db2/history/filter_rules_test.go index 21223710b6..b3d5a2d70c 100644 --- a/services/horizon/internal/db2/history/filter_rules_test.go +++ b/services/horizon/internal/db2/history/filter_rules_test.go @@ -15,7 +15,7 @@ var ( } ) -func TestInsertConfig(t *testing.T) { +func TestInsertFilterConfig(t *testing.T) { tt := test.Start(t) defer tt.Finish() test.ResetHorizonDB(t, tt.HorizonDB) @@ -23,15 +23,15 @@ func TestInsertConfig(t *testing.T) { err := q.UpsertFilterConfig(tt.Ctx, fc1) assert.NoError(t, err) - fc1, err = q.GetFilterByName(tt.Ctx, "test data") + fc1Result, err := q.GetFilterByName(tt.Ctx, "test data") assert.NoError(t, err) - tt.Assert.True(fc1.LastModified > 0) - tt.Assert.Equal(fc1.Name, "test data") - tt.Assert.Equal(fc1.Enabled, false) - tt.Assert.Equal(fc1.Rules, "{}") + tt.Assert.True(fc1Result.LastModified > 0) + tt.Assert.Equal(fc1Result.Name, "test data") + tt.Assert.Equal(fc1Result.Enabled, false) + tt.Assert.Equal(fc1Result.Rules, "{}") } -func TestGetAll(t *testing.T) { +func TestGetAllFilterConfigs(t *testing.T) { tt := test.Start(t) defer tt.Finish() test.ResetHorizonDB(t, tt.HorizonDB) @@ -64,7 +64,7 @@ func TestRemoveFilterConfig(t *testing.T) { assert.Error(t, err) } -func TestUpdateExisting(t *testing.T) { +func TestUpdateExistingFilterConfig(t *testing.T) { tt := test.Start(t) defer tt.Finish() test.ResetHorizonDB(t, tt.HorizonDB) @@ -72,18 +72,18 @@ func TestUpdateExisting(t *testing.T) { err := q.UpsertFilterConfig(tt.Ctx, fc1) assert.NoError(t, err) - fc1, err = q.GetFilterByName(tt.Ctx, "test data") + fc1Result, err := q.GetFilterByName(tt.Ctx, "test data") assert.NoError(t, err) - tt.Assert.Equal(fc1.Enabled, false) - tt.Assert.Equal(fc1.Rules, "{}") + tt.Assert.Equal(fc1Result.Enabled, false) + tt.Assert.Equal(fc1Result.Rules, "{}") - fc1.Enabled = true - fc1.Rules = `{"abc": "123"}` - err = q.UpsertFilterConfig(tt.Ctx, fc1) + fc1Result.Enabled = true + fc1Result.Rules = `{"abc": "123"}` + err = q.UpsertFilterConfig(tt.Ctx, fc1Result) assert.NoError(t, err) - fc1, err = q.GetFilterByName(tt.Ctx, "test data") + fc1Result, err = q.GetFilterByName(tt.Ctx, "test data") assert.NoError(t, err) - tt.Assert.Equal(fc1.Name, "test data") - tt.Assert.Equal(fc1.Enabled, true) - tt.Assert.Equal(fc1.Rules, `{"abc": "123"}`) + tt.Assert.Equal(fc1Result.Name, "test data") + tt.Assert.Equal(fc1Result.Enabled, true) + tt.Assert.Equal(fc1Result.Rules, `{"abc": "123"}`) }