Skip to content
Snippets Groups Projects
Commit 7b630eb7 authored by Danis Kirasirov's avatar Danis Kirasirov
Browse files

Удалены поля PageNum/PageSize

parent 58fa951f
No related branches found
No related tags found
No related merge requests found
......@@ -104,11 +104,18 @@ func PtrServicesFindOptionsToProto(opts *options.FindOptions) (*pb.FindOptions,
if opts == nil {
return nil, nil
}
return &pb.FindOptions{
fo := &pb.FindOptions{
Sort: opts.Sort,
PageNum: int32(opts.PageNum),
PageSize: int32(opts.PageSize),
}, nil
PageSize: int32(opts.Limit),
}
if opts.Limit != 0 {
// Потенциальная ошибка если offset не кратен limit
fo.PageNum = int32(opts.Offset / opts.Limit)
}
return fo, nil
}
func ProtoToPtrServicesFindOptions(protoOpts *pb.FindOptions) (*options.FindOptions, error) {
......@@ -120,8 +127,8 @@ func ProtoToPtrServicesFindOptions(protoOpts *pb.FindOptions) (*options.FindOpti
Sort: protoOpts.Sort,
},
PaginationOptions: options.PaginationOptions{
PageNum: int(protoOpts.PageNum),
PageSize: int(protoOpts.PageSize),
Limit: int(protoOpts.PageSize),
Offset: int(protoOpts.PageNum * protoOpts.PageSize),
},
}, nil
}
......
......@@ -25,18 +25,10 @@ type DummyWithOptions struct {
func (d *DummyWithOptions) Find(_ context.Context, _, _, _ string, _ *Filter, opts ...*FindOptions) ([]*Item, int, error) {
fo := MergeFindOptions(opts...)
limit := fo.Limit
if limit == 0 {
limit = fo.PageSize
}
return make([]*Item, limit), d.Total, nil
return make([]*Item, fo.Limit), d.Total, nil
}
func (d *DummyWithOptions) FindPublished(_ context.Context, _, _, _ string, _ *Filter, opts ...*FindPublishedOptions) ([]*Item, int, error) {
fo := MergeFindPublishedOptions(opts...)
limit := fo.Limit
if limit == 0 {
limit = fo.PageSize
}
return make([]*Item, limit), d.Total, nil
return make([]*Item, fo.Limit), d.Total, nil
}
......@@ -96,18 +96,12 @@ func (b *BatchProcessor) Do(ctx context.Context, f func(batch []*Item) error) (i
b.FindOptions = new(FindOptions)
}
if b.FindOptions != nil {
b.limit = b.FindOptions.PageSize
b.limit = b.FindOptions.Limit
b.sort = b.FindOptions.Sort
if b.FindOptions.Limit != 0 {
b.limit = b.FindOptions.Limit
}
}
if b.FindPublishedOptions != nil {
b.limit = b.FindPublishedOptions.PageSize
b.limit = b.FindPublishedOptions.Limit
b.sort = b.FindPublishedOptions.Sort
if b.FindPublishedOptions.Limit != 0 {
b.limit = b.FindPublishedOptions.Limit
}
}
if b.limit == 0 {
......
......@@ -13,10 +13,6 @@ type SortOptions struct {
// PaginationOptions настройки возвращаемых страниц результатов
type PaginationOptions struct {
//Deprecated
PageNum int
PageSize int
Limit int
Offset int
}
......@@ -101,8 +97,6 @@ func FindOptionsFromPB(protoOpts *commonpb.FindOptions) *FindOptions {
Sort: protoOpts.Sort,
},
PaginationOptions: PaginationOptions{
PageNum: int(protoOpts.PageNum),
PageSize: int(protoOpts.PageSize),
Limit: int(protoOpts.Limit),
Offset: int(protoOpts.Offset),
},
......@@ -112,9 +106,9 @@ func FindOptionsFromPB(protoOpts *commonpb.FindOptions) *FindOptions {
},
}
if fo.Offset == 0 && fo.Limit == 0 && fo.PageSize != 0 {
fo.Offset = fo.PageSize * fo.PageNum
fo.Limit = fo.PageSize
if fo.Offset == 0 && fo.Limit == 0 {
fo.Offset = int(protoOpts.PageSize * protoOpts.PageNum)
fo.Limit = int(protoOpts.PageSize)
}
return fo
......@@ -126,21 +120,11 @@ func FindOptionsToPB(opts *FindOptions) *commonpb.FindOptions {
}
fo := &commonpb.FindOptions{
Sort: opts.Sort,
PageNum: int32(opts.PageNum),
PageSize: int32(opts.PageSize),
Offset: int32(opts.Offset),
Limit: int32(opts.Limit),
Fields: opts.Fields,
ExcludeFields: opts.ExcludeFields,
}
if fo.PageSize != 0 && fo.Limit == 0 {
fo.Limit = fo.PageSize
fo.Offset = fo.PageSize * fo.PageNum
}
if fo.Limit != 0 && fo.PageSize == 0 {
fo.PageSize = fo.Limit
fo.PageNum = fo.Offset / fo.Limit
}
return fo
}
......@@ -164,11 +148,9 @@ func MergeSortOptions(options ...SortOptions) SortOptions {
func MergePaginationOptions(options ...PaginationOptions) PaginationOptions {
fo := PaginationOptions{}
for _, opt := range options {
if opt.PageSize == 0 && opt.PageNum == 0 && opt.Offset == 0 && opt.Limit == 0 {
if opt.Offset == 0 && opt.Limit == 0 {
continue
}
fo.PageNum = opt.PageNum
fo.PageSize = opt.PageSize
fo.Offset = opt.Offset
fo.Limit = opt.Limit
}
......
......@@ -22,32 +22,6 @@ func TestOptions_MergePaginationOptions(t *testing.T) {
options: []PaginationOptions{},
expected: PaginationOptions{},
},
{
name: "One page option",
options: []PaginationOptions{{PageNum: 10, PageSize: 100}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
name: "Merge pages #1",
options: []PaginationOptions{{PageNum: 0, PageSize: 0}, {PageNum: 10, PageSize: 100}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
name: "Merge pages #2",
options: []PaginationOptions{{PageNum: 10, PageSize: 100}, {PageNum: 0, PageSize: 0}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
name: "Merge pages #3",
options: []PaginationOptions{{PageNum: 0, PageSize: 0}, {PageNum: 10, PageSize: 100}, {PageNum: 0, PageSize: 0}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
name: "Merge pages #4",
options: []PaginationOptions{{PageNum: 10, PageSize: 100}, {}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
name: "One limit/offset option",
options: []PaginationOptions{{Limit: 10, Offset: 100}},
......
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