From acedcab5ada6487d8eee90e2b7f0b46905c402be Mon Sep 17 00:00:00 2001 From: ko_oler <kooler89@gmail.com> Date: Tue, 26 Nov 2024 13:51:05 +0300 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=B7=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=20'Fr?= =?UTF-8?q?om'=20=D0=B8=20'To'=20=D0=BF=D1=80=D0=B8=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=82=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B8=D0=B7?= =?UTF-8?q?=20go-=D0=BF=D1=80=D0=B5=D0=B4=D1=81=D1=82=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20PB=20=D0=B8=20=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D1=82=D0=BD=D0=BE=20=D0=B2=20=D1=81=D0=B5=D1=80?= =?UTF-8?q?=D0=B2=D0=B8=D1=81=D0=B5=20"=D0=9B=D0=BE=D0=B3"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logs/log_test.go | 21 ++++++++++++++++++++ logs/service.go | 51 +++++++++++++++++++++++++++++++----------------- 2 files changed, 54 insertions(+), 18 deletions(-) diff --git a/logs/log_test.go b/logs/log_test.go index 1816cb9f..6cf49420 100644 --- a/logs/log_test.go +++ b/logs/log_test.go @@ -5,6 +5,7 @@ import ( "time" "git.perx.ru/perxis/perxis-go/id" + pb "git.perx.ru/perxis/perxis-go/proto/logs" "github.com/stretchr/testify/assert" ) @@ -64,3 +65,23 @@ func TestEntry_ToMap(t *testing.T) { }) } } + +func TestFindRequest(t *testing.T) { + t.Run("From PB", func(t *testing.T) { + res := FindRequestFromPB(&pb.FindRequest{ + Filter: nil, + Options: &pb.FindOptions{}, + }) + assert.True(t, res.Options.From.IsZero()) + assert.True(t, res.Options.To.IsZero()) + }) + t.Run("To PB", func(t *testing.T) { + res := FindRequestToPB(&FindRequest{ + Filter: nil, + Options: &FindOptions{}, + }) + assert.False(t, res.Options.From.IsValid()) + assert.False(t, res.Options.To.IsValid()) + }) + +} diff --git a/logs/service.go b/logs/service.go index fe92b160..97400904 100644 --- a/logs/service.go +++ b/logs/service.go @@ -155,31 +155,46 @@ func FindRequestFromPB(request *pb.FindRequest) *FindRequest { } // FindOptionsToPB перевод в proto представление FindOptions -func FindOptionsToPB(result *FindOptions) *pb.FindOptions { - if result == nil { +func FindOptionsToPB(opts *FindOptions) *pb.FindOptions { + if opts == nil { return nil } - return &pb.FindOptions{ - Sort: result.Sort, - Fields: result.Fields, - ExcludeFields: result.ExcludeFields, - Limit: int32(result.Limit), - From: timestamppb.New(result.From), - To: timestamppb.New(result.To), + + res := &pb.FindOptions{ + Sort: opts.Sort, + Fields: opts.Fields, + ExcludeFields: opts.ExcludeFields, + Limit: int32(opts.Limit), + } + + if !opts.From.IsZero() { + res.From = timestamppb.New(opts.From) + } + + if !opts.To.IsZero() { + res.To = timestamppb.New(opts.To) } + + return res } // FindOptionsFromPB перевод из proto представления FindOptions -func FindOptionsFromPB(result *pb.FindOptions) *FindOptions { - if result == nil { +func FindOptionsFromPB(opts *pb.FindOptions) *FindOptions { + if opts == nil { return nil } - return &FindOptions{ - Sort: result.Sort, - Fields: result.Fields, - ExcludeFields: result.ExcludeFields, - Limit: int(result.Limit), - From: result.From.AsTime(), - To: result.To.AsTime(), + res := &FindOptions{ + Sort: opts.Sort, + Fields: opts.Fields, + ExcludeFields: opts.ExcludeFields, + Limit: int(opts.Limit), + } + + if opts.From.IsValid() { + res.From = opts.From.AsTime() + } + if opts.To.IsValid() { + res.To = opts.To.AsTime() } + return res } -- GitLab