From f4d2c83dba4307223dbfc44a91ca4b11eb752dc7 Mon Sep 17 00:00:00 2001
From: ko_oler <kooler89@gmail.com>
Date: Mon, 22 Jan 2024 16:33:05 +0300
Subject: [PATCH] =?UTF-8?q?-=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=BE=20=D0=B7=D0=B0=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D0=B5?=
 =?UTF-8?q?=20stream=20-=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B2?=
 =?UTF-8?q?=20FindOptions?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../grpc/protobuf_type_converters.microgen.go       |  4 ++++
 .../grpc/protobuf_type_converters.microgen.go       |  4 ++++
 pkg/log/client.go                                   | 13 ++++++++++---
 pkg/log/service.go                                  |  5 -----
 pkg/options/options.go                              | 10 ++++++++--
 .../grpc/protobuf_type_converters.microgen.go       |  4 ++++
 6 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/pkg/delivery/transport/grpc/protobuf_type_converters.microgen.go b/pkg/delivery/transport/grpc/protobuf_type_converters.microgen.go
index 187f256c..aedb4ff8 100644
--- a/pkg/delivery/transport/grpc/protobuf_type_converters.microgen.go
+++ b/pkg/delivery/transport/grpc/protobuf_type_converters.microgen.go
@@ -309,6 +309,8 @@ func PtrServicesFindOptionsToProto(options *services.FindOptions) (*common.FindO
 		Sort:          options.Sort,
 		PageNum:       int32(options.PageNum),
 		PageSize:      int32(options.PageSize),
+		Offset:        int32(options.Offset),
+		Limit:         int32(options.Limit),
 		Fields:        options.Fields,
 		ExcludeFields: options.ExcludeFields,
 	}, nil
@@ -325,6 +327,8 @@ func ProtoToPtrServicesFindOptions(protoOptions *common.FindOptions) (*services.
 		PaginationOptions: services.PaginationOptions{
 			PageNum:  int(protoOptions.PageNum),
 			PageSize: int(protoOptions.PageSize),
+			Offset:   int(protoOptions.Offset),
+			Limit:    int(protoOptions.Limit),
 		},
 		FieldOptions: services.FieldOptions{
 			Fields:        protoOptions.Fields,
diff --git a/pkg/items/transport/grpc/protobuf_type_converters.microgen.go b/pkg/items/transport/grpc/protobuf_type_converters.microgen.go
index 212b1ecd..0b214cc9 100644
--- a/pkg/items/transport/grpc/protobuf_type_converters.microgen.go
+++ b/pkg/items/transport/grpc/protobuf_type_converters.microgen.go
@@ -151,6 +151,8 @@ func PtrServicesFindOptionsToProto(opts *options.FindOptions) (*pbcommon.FindOpt
 		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,
 	}, nil
@@ -167,6 +169,8 @@ func ProtoToPtrServicesFindOptions(protoOpts *pbcommon.FindOptions) (*options.Fi
 		PaginationOptions: options.PaginationOptions{
 			PageNum:  int(protoOpts.PageNum),
 			PageSize: int(protoOpts.PageSize),
+			Offset:   int(protoOpts.Offset),
+			Limit:    int(protoOpts.Limit),
 		},
 		FieldOptions: options.FieldOptions{
 			Fields:        protoOpts.Fields,
diff --git a/pkg/log/client.go b/pkg/log/client.go
index c7c4466b..1c12c583 100644
--- a/pkg/log/client.go
+++ b/pkg/log/client.go
@@ -36,6 +36,13 @@ func (c *Client) Log(ctx context.Context, entries <-chan *Entry) error {
 		}
 	}
 
+	response, err := stream.CloseAndRecv()
+	if err != nil {
+		return err
+	}
+	if response.GetError() != nil {
+		return errorsgrpc.ErrorFromProto(nil, response.GetError())
+	}
 	return nil
 }
 
@@ -57,9 +64,9 @@ func (c *Client) Find(ctx context.Context, filter *Filter, options *options.Find
 	}
 	if options != nil {
 		request.Options = &common.FindOptions{
-			Sort:     options.Sort,
-			PageNum:  int32(options.PageNum),
-			PageSize: int32(options.PageSize),
+			Sort:   options.Sort,
+			Offset: int32(options.Offset),
+			Limit:  int32(options.Limit),
 		}
 	}
 	response, err := c.client.Find(ctx, request)
diff --git a/pkg/log/service.go b/pkg/log/service.go
index 31d4a60b..e555071d 100644
--- a/pkg/log/service.go
+++ b/pkg/log/service.go
@@ -27,11 +27,6 @@ type Filter struct {
 	Q []string
 }
 
-//type FindRequest struct {
-//	Filter  *Filter
-//	Options *options.FindOptions
-//}
-
 type FindResult struct {
 	Entries []*Entry
 	Filter  *Filter
diff --git a/pkg/options/options.go b/pkg/options/options.go
index 7f8b0cd6..b55c0ff3 100644
--- a/pkg/options/options.go
+++ b/pkg/options/options.go
@@ -11,6 +11,8 @@ type SortOptions struct {
 type PaginationOptions struct {
 	PageNum  int
 	PageSize int
+	Limit    int
+	Offset   int
 }
 
 // FieldOptions настройки включения/исключения полей из результатов запроса
@@ -32,11 +34,13 @@ type FindOptions struct {
 }
 
 // NewFindOptions создает новые результаты поиска
-func NewFindOptions(pageNum, pageSize int, sort ...string) *FindOptions {
+func NewFindOptions(pageNum, pageSize, offset, limit int, sort ...string) *FindOptions {
 	return &FindOptions{
 		PaginationOptions: PaginationOptions{
 			PageNum:  pageNum,
 			PageSize: pageSize,
+			Offset:   offset,
+			Limit:    limit,
 		},
 		SortOptions: SortOptions{
 			Sort: sort,
@@ -98,11 +102,13 @@ func MergeSortOptions(options ...SortOptions) SortOptions {
 func MergePaginationOptions(options ...PaginationOptions) PaginationOptions {
 	fo := PaginationOptions{}
 	for _, opt := range options {
-		if opt.PageSize == 0 && opt.PageNum == 0 {
+		if opt.PageSize == 0 && opt.PageNum == 0 || opt.Offset == 0 && opt.Limit == 0 {
 			continue
 		}
 		fo.PageNum = opt.PageNum
 		fo.PageSize = opt.PageSize
+		fo.Offset = opt.Offset
+		fo.Limit = opt.Limit
 	}
 	return fo
 }
diff --git a/pkg/organizations/transport/grpc/protobuf_type_converters.microgen.go b/pkg/organizations/transport/grpc/protobuf_type_converters.microgen.go
index 15fce8f5..2c024a9e 100644
--- a/pkg/organizations/transport/grpc/protobuf_type_converters.microgen.go
+++ b/pkg/organizations/transport/grpc/protobuf_type_converters.microgen.go
@@ -68,6 +68,8 @@ func PtrServicesFindOptionsToProto(opts *options.FindOptions) (*common.FindOptio
 		Sort:     opts.Sort,
 		PageNum:  int32(opts.PageNum),
 		PageSize: int32(opts.PageSize),
+		Offset:   int32(opts.Offset),
+		Limit:    int32(opts.Limit),
 	}, nil
 }
 
@@ -82,6 +84,8 @@ func ProtoToPtrServicesFindOptions(protoOpts *common.FindOptions) (*options.Find
 		PaginationOptions: options.PaginationOptions{
 			PageNum:  int(protoOpts.PageNum),
 			PageSize: int(protoOpts.PageSize),
+			Offset:   int(protoOpts.Offset),
+			Limit:    int(protoOpts.Limit),
 		},
 	}, nil
 }
-- 
GitLab