diff --git a/pkg/items/pagination.go b/pkg/items/pagination.go index 754eb22b5c3fe5beddc1aa74011f84da544a528c..936d5b10629869ac7bd5926efa731ae4b5f80c84 100644 --- a/pkg/items/pagination.go +++ b/pkg/items/pagination.go @@ -16,9 +16,12 @@ type BatchProcessor struct { FindPublishedOptions *FindPublishedOptions Filter *Filter - pageSize, pageNum, offset, limit int - sort []string - processed int + // Deprecated использовать offset, limit + pageSize, pageNum int + + offset, limit int + sort []string + processed int } func (b *BatchProcessor) getBatch(ctx context.Context) ([]*Item, bool, error) { @@ -37,7 +40,7 @@ func (b *BatchProcessor) getBatch(ctx context.Context) ([]*Item, bool, error) { Regular: b.FindPublishedOptions.Regular, Hidden: b.FindPublishedOptions.Hidden, Templates: b.FindPublishedOptions.Templates, - FindOptions: *options.NewFindOptions(b.pageNum, b.pageSize, b.offset, b.limit, b.sort...), + FindOptions: *options.NewFindOptions(b.offset, b.limit, b.sort...), }, ) } else { @@ -52,7 +55,7 @@ func (b *BatchProcessor) getBatch(ctx context.Context) ([]*Item, bool, error) { Regular: b.FindOptions.Regular, Hidden: b.FindOptions.Hidden, Templates: b.FindOptions.Templates, - FindOptions: *options.NewFindOptions(b.pageNum, b.pageSize, b.offset, b.limit, b.sort...), + FindOptions: *options.NewFindOptions(b.offset, b.limit, b.sort...), }, ) } diff --git a/pkg/log/log.go b/pkg/log/log.go index 37934c0cffbda5affa79105999a6951585ad4223..70ee05eef643861b86a72649a70b4281ce82e573 100644 --- a/pkg/log/log.go +++ b/pkg/log/log.go @@ -1,24 +1,29 @@ package log import ( + "encoding/json" "time" - "git.perx.ru/perxis/perxis-go/proto/log" + pb "git.perx.ru/perxis/perxis-go/proto/log" + "github.com/golang/protobuf/ptypes/any" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/timestamppb" + wrappers "google.golang.org/protobuf/types/known/wrapperspb" ) type Level int const ( - Info = Level(log.LogLevel_INFO) - Warning = Level(log.LogLevel_WARNING) - Error = Level(log.LogLevel_ERROR) - Critical = Level(log.LogLevel_CRITICAL) - Fatal = Level(log.LogLevel_FATAL) + Info = Level(pb.LogLevel_INFO) + Warning = Level(pb.LogLevel_WARNING) + Error = Level(pb.LogLevel_ERROR) + Critical = Level(pb.LogLevel_CRITICAL) + Fatal = Level(pb.LogLevel_FATAL) ) func (l Level) String() string { - s := log.LogLevel_name[int32(l)] + s := pb.LogLevel_name[int32(l)] if s == "" { s = "UNKNOWN" } @@ -39,24 +44,35 @@ type Entry struct { Tags []string `json:"tags,omitempty" bson:"tags,omitempty"` } -func EntryToPB(entry *Entry) *log.LogEntry { - logEntry := &log.LogEntry{ +func convertInterfaceToAny(v interface{}) (*any.Any, error) { + anyValue := &any.Any{} + bytes, _ := json.Marshal(v) + bytesValue := &wrappers.BytesValue{ + Value: bytes, + } + err := anypb.MarshalFrom(anyValue, bytesValue, proto.MarshalOptions{}) + return anyValue, err +} + +func EntryToPB(entry *Entry) *pb.LogEntry { + logEntry := &pb.LogEntry{ Id: entry.ID, Timestamp: timestamppb.New(entry.Timestamp), - Level: log.LogLevel(entry.LogLevel), + Level: pb.LogLevel(entry.LogLevel), Message: entry.Message, Category: entry.Category, Component: entry.Component, Event: entry.Event, Object: entry.Object, Caller: entry.Caller, - Attr: nil, // todo: как с этим работать? Tags: entry.Tags, } + logEntry.Attr, _ = convertInterfaceToAny(entry.Attr) + return logEntry } -func EntryFromPB(request *log.LogEntry) *Entry { +func EntryFromPB(request *pb.LogEntry) *Entry { return &Entry{ ID: request.Id, Timestamp: request.Timestamp.AsTime(), diff --git a/pkg/log/service.go b/pkg/log/service.go index e555071da4815a7b5bfadee90d1c3be0d189c710..4692493285dcff2c16d37c76c24c0c15b94c1712 100644 --- a/pkg/log/service.go +++ b/pkg/log/service.go @@ -5,7 +5,7 @@ import ( itemstransportgrpc "git.perx.ru/perxis/perxis-go/pkg/items/transport/grpc" "git.perx.ru/perxis/perxis-go/pkg/options" - "git.perx.ru/perxis/perxis-go/proto/log" + pb "git.perx.ru/perxis/perxis-go/proto/log" ) type Service interface { @@ -34,12 +34,12 @@ type FindResult struct { Total uint32 } -func FindResultToPB(result *FindResult) *log.FindResult { - findResult := &log.FindResult{ +func FindResultToPB(result *FindResult) *pb.FindResult { + findResult := &pb.FindResult{ Total: result.Total, } - entries := make([]*log.LogEntry, 0, len(result.Entries)) + entries := make([]*pb.LogEntry, 0, len(result.Entries)) for _, e := range result.Entries { entries = append(entries, EntryToPB(e)) } @@ -55,7 +55,7 @@ func FindResultToPB(result *FindResult) *log.FindResult { return findResult } -func FindResultFromPB(result *log.FindResult) *FindResult { +func FindResultFromPB(result *pb.FindResult) *FindResult { findResult := &FindResult{ Total: result.Total, } diff --git a/pkg/options/options.go b/pkg/options/options.go index 8b172de8f7f67157ebc7e354d8ec91c0e24a3ccf..277ef20303ed8a337f7c915b300de6d098ecf1d5 100644 --- a/pkg/options/options.go +++ b/pkg/options/options.go @@ -34,11 +34,11 @@ type FindOptions struct { } // NewFindOptions создает новые результаты поиска -func NewFindOptions(pageNum, pageSize, offset, limit int, sort ...string) *FindOptions { +func NewFindOptions(offset, limit int, sort ...string) *FindOptions { return &FindOptions{ PaginationOptions: PaginationOptions{ - PageNum: pageNum, - PageSize: pageSize, + PageNum: offset, + PageSize: limit, Offset: offset, Limit: limit, },