From bec78dfbd15fd528caa38abf2a15f1db789ffc64 Mon Sep 17 00:00:00 2001 From: Alena Petraki <alena.petraki@gmail.com> Date: Thu, 12 Oct 2023 14:05:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B8=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=B0=D1=86=D0=B8=D1=8F=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B8=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B8=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B0=20?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/extension/server.go | 15 ++++++++++----- pkg/extension/server_test.go | 3 +-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/pkg/extension/server.go b/pkg/extension/server.go index 4f8f3bae..42c1f241 100644 --- a/pkg/extension/server.go +++ b/pkg/extension/server.go @@ -7,7 +7,9 @@ import ( "git.perx.ru/perxis/perxis-go/pkg/action" "git.perx.ru/perxis/perxis-go/pkg/errors" "git.perx.ru/perxis/perxis-go/pkg/operation" + commonpb "git.perx.ru/perxis/perxis-go/proto/common" pb "git.perx.ru/perxis/perxis-go/proto/extensions" + "google.golang.org/grpc" "google.golang.org/protobuf/proto" ) @@ -21,8 +23,7 @@ func DefaultWrapErrFn() WrapErrFn { type ServerOption func(c *Server) -// WrapErrs Оборачивать ошибки, возвращаемые от каждого из -// расширений, в название расширения +// WrapErrs Оборачивать ошибки, возвращаемые от каждого из расширений, в название расширения func WrapErrs() ServerOption { return func(c *Server) { c.wrapErr = func(extension Extension, err error) error { @@ -80,10 +81,9 @@ type Server struct { pb.UnimplementedExtensionServiceServer } -func NewServer(operation operation.Service, options ...ServerOption) *Server { +func NewServer(options ...ServerOption) *Server { srv := &Server{ - // todo: нужно как-то неявно создавать и регистрировать сервер операций - ? - operations: operation, + operations: operation.NewDefaultService(), wrapErr: DefaultWrapErrFn(), } @@ -94,6 +94,11 @@ func NewServer(operation operation.Service, options ...ServerOption) *Server { return srv } +func RegisterServer(grpcSrv *grpc.Server, srv *Server) { + commonpb.RegisterOperationServiceServer(grpcSrv, operation.NewServer(srv.operations)) + pb.RegisterExtensionServiceServer(grpcSrv, srv) +} + func (s *Server) Install(ctx context.Context, req *InstallRequest) (*operation.Proto, error) { exts, err := s.extensions(ctx, req.Extensions...) if err != nil { diff --git a/pkg/extension/server_test.go b/pkg/extension/server_test.go index cb6d6d3a..f80988fa 100644 --- a/pkg/extension/server_test.go +++ b/pkg/extension/server_test.go @@ -7,7 +7,6 @@ import ( "testing" "git.perx.ru/perxis/perxis-go/pkg/errors" - "git.perx.ru/perxis/perxis-go/pkg/operation" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -119,7 +118,7 @@ func TestServer_Action(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - srv := NewServer(operation.NewDefaultService(), NamedExtensions(tt.extension)) + srv := NewServer(NamedExtensions(tt.extension)) got, err := srv.Action(context.Background(), tt.in) if tt.wantErr != "" { require.Error(t, err) -- GitLab