Skip to content
Snippets Groups Projects
Commit c8d9da30 authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Merge branch 'fix/2837-TimeInFindOptions' into 'master'

Исправлена запись 'From' и 'To' при конвертации из go-представления в PB и обратно в сервисе "Лог"

See merge request perxis/perxis-go!401
parents b2fe6b97 acedcab5
No related branches found
No related tags found
No related merge requests found
......@@ -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())
})
}
......@@ -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
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment