From cac9377b8efb86b7d22ea7f4091438914c0de069 Mon Sep 17 00:00:00 2001 From: Alex Petraky <petraky@perx.ru> Date: Tue, 3 Dec 2024 11:43:28 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D1=82=D1=80=D0=B0=D0=BD=D1=81=D0=BF=D0=BE=D1=80=D1=82?= =?UTF-8?q?=D0=B5=20=D1=81=D0=B5=D1=80=D0=B2=D0=B8=D1=81=D0=B0=20Logs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logs/log_test.go | 20 ++++++++++++++++++++ logs/service.go | 14 +++++++++++--- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/logs/log_test.go b/logs/log_test.go index 45d8222a..12aa362a 100644 --- a/logs/log_test.go +++ b/logs/log_test.go @@ -106,4 +106,24 @@ func TestFindResult(t *testing.T) { assert.Equal(t, []string{"timestamp"}, res.Options.Sort) assert.Equal(t, []string{"level"}, res.Options.Fields) }) + t.Run("From PB: with nil filter and options", func(t *testing.T) { + res := FindResultFromPB(&pb.FindResult{Filter: nil, Options: nil}) + assert.NotNil(t, res) + assert.Nil(t, res.Options) + assert.Nil(t, res.Filter) + }) + t.Run("To PB: with nil filter and options", func(t *testing.T) { + res := FindResultToPB(&FindResult{Filter: nil, Options: nil}) + assert.NotNil(t, res) + assert.Nil(t, res.Options) + assert.Nil(t, res.Filter) + }) + t.Run("From PB: nil", func(t *testing.T) { + res := FindResultFromPB(nil) + assert.Nil(t, res) + }) + t.Run("To PB: nil", func(t *testing.T) { + res := FindResultToPB(nil) + assert.Nil(t, res) + }) } diff --git a/logs/service.go b/logs/service.go index 9409b2a4..f91fbcc1 100644 --- a/logs/service.go +++ b/logs/service.go @@ -61,6 +61,10 @@ type FindOptions struct { // FindResultToPB перевод в proto представление FindResult func FindResultToPB(result *FindResult) *pb.FindResult { + if result == nil { + return nil + } + findResult := &pb.FindResult{Total: 0} // поле стало deprecated всегда возвращаем 0 entries := make([]*pb.LogEntry, 0, len(result.Entries)) @@ -70,7 +74,7 @@ func FindResultToPB(result *FindResult) *pb.FindResult { findResult.Entries = entries if result.Filter != nil { - findResult.Filter.Q = result.Filter.Q + findResult.Filter = &pb.Filter{Q: result.Filter.Q} } if result.Options != nil { findResult.Options = FindOptionsToPB(result.Options) @@ -89,7 +93,11 @@ func FindResultToPB(result *FindResult) *pb.FindResult { // FindResultFromPB перевод из proto представления FindResult func FindResultFromPB(result *pb.FindResult) *FindResult { - findResult := new(FindResult) + if result == nil { + return nil + } + + findResult := &FindResult{} entries := make([]*Entry, 0, len(result.Entries)) for _, e := range result.Entries { @@ -98,7 +106,7 @@ func FindResultFromPB(result *pb.FindResult) *FindResult { findResult.Entries = entries if result.Filter != nil { - findResult.Filter.Q = result.Filter.Q + findResult.Filter = &Filter{Q: result.Filter.Q} } if result.Options != nil { findResult.Options = FindOptionsFromPB(result.Options) -- GitLab