From 63c00a64f412b05d81f17bca7f03059cfa92aee5 Mon Sep 17 00:00:00 2001 From: ko_oler <kooler89@gmail.com> Date: Tue, 26 Sep 2023 11:33:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=9F=D0=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/extension/action_url.go | 14 ++++----- pkg/extension/action_url_test.go | 47 +++++++++++++++--------------- pkg/extension/server.go | 8 ++--- pkg/extension/service/extension.go | 8 ++--- 4 files changed, 38 insertions(+), 39 deletions(-) diff --git a/pkg/extension/action_url.go b/pkg/extension/action_url.go index c0285f1c..5552b81a 100644 --- a/pkg/extension/action_url.go +++ b/pkg/extension/action_url.go @@ -9,11 +9,11 @@ import ( // ActionURL структура для хранения данных о переданном действии type ActionURL struct { - actionURL string - actionID string - extensionID string - scheme string - url *url.URL + actionURL string + actionID string + extension string + scheme string + url *url.URL } // NewActionURL возвращает пустую структуру ActionURL, если передано пустое действие @@ -29,7 +29,7 @@ func (p *ActionURL) ID() string { // Extension возвращает сохраненный в ActionURL id расширения func (p *ActionURL) Extension() string { - return p.extensionID + return p.extension } // Scheme возвращает сохраненную в ActionURL схему @@ -59,7 +59,7 @@ func parseActionURL(action string) (*ActionURL, error) { if len(splitPath) < 2 { return nil, errors.Errorf("incorrect action URL, no action id: '%s'", action) } - parsed.extensionID = splitPath[0] + parsed.extension = splitPath[0] parsed.actionID = splitPath[1] } return parsed, nil diff --git a/pkg/extension/action_url_test.go b/pkg/extension/action_url_test.go index 7c5ef5e4..e71ef1b6 100644 --- a/pkg/extension/action_url_test.go +++ b/pkg/extension/action_url_test.go @@ -9,53 +9,49 @@ import ( ) func TestNewActionURL(t *testing.T) { - u1, _ := url.Parse("build-site") - u2, _ := url.Parse("grpc:///perxisweb/build-site") - u3, _ := url.Parse("ui:///space/env/coll") - u4, _ := url.Parse("https://perx.ru") tests := []struct { name string action string want *ActionURL + url string wantErr assert.ErrorAssertionFunc }{ { - "Without action", - "", - &ActionURL{}, - assert.NoError, + name: "Without action", + want: &ActionURL{}, + wantErr: assert.NoError, }, { - "Without deprecated action call", - "build-site", - &ActionURL{ + name: "Without deprecated action call", + action: "build-site", + want: &ActionURL{ actionURL: "build-site", - url: u1, }, - assert.NoError, + url: "build-site", + wantErr: assert.NoError, }, { name: "With grpc action", action: "grpc:///perxisweb/build-site", want: &ActionURL{ - actionURL: "grpc:///perxisweb/build-site", - actionID: "build-site", - extensionID: "perxisweb", - scheme: "grpc", - url: u2, + actionURL: "grpc:///perxisweb/build-site", + actionID: "build-site", + extension: "perxisweb", + scheme: "grpc", }, + url: "grpc:///perxisweb/build-site", wantErr: assert.NoError, }, { name: "With ui action", action: "ui:///space/env/coll", want: &ActionURL{ - actionURL: "ui:///space/env/coll", - actionID: "", - extensionID: "", - scheme: "ui", - url: u3, + actionURL: "ui:///space/env/coll", + actionID: "", + extension: "", + scheme: "ui", }, + url: "ui:///space/env/coll", wantErr: assert.NoError, }, { @@ -64,8 +60,8 @@ func TestNewActionURL(t *testing.T) { want: &ActionURL{ actionURL: "https://perx.ru", scheme: "https", - url: u4, }, + url: "https://perx.ru", wantErr: assert.NoError, }, { @@ -77,6 +73,9 @@ func TestNewActionURL(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + if tt.url != "" { + tt.want.url, _ = url.Parse(tt.url) + } got, err := NewActionURL(tt.action) if !tt.wantErr(t, err, fmt.Sprintf("NewActionURL(%v)", tt.action)) { return diff --git a/pkg/extension/server.go b/pkg/extension/server.go index bdeac58c..aec70ff7 100644 --- a/pkg/extension/server.go +++ b/pkg/extension/server.go @@ -80,16 +80,16 @@ func (srv *Server) Update(ctx context.Context, request *UpdateRequest) (*UpdateR } func (srv *Server) Action(ctx context.Context, in *pb.ActionRequest) (*pb.ActionResponse, error) { - extensionID := in.Extension - if extensionID == "" { + ext := in.Extension + if ext == "" { actionURL, err := NewActionURL(in.Action) if err != nil { return nil, err } - extensionID = actionURL.extensionID + ext = actionURL.extension } - svc, ok := srv.services[extensionID] + svc, ok := srv.services[ext] if !ok { return nil, ErrUnknownExtension } diff --git a/pkg/extension/service/extension.go b/pkg/extension/service/extension.go index 5b9263e0..2fd57ee7 100644 --- a/pkg/extension/service/extension.go +++ b/pkg/extension/service/extension.go @@ -155,15 +155,15 @@ func (s *Extension) Uninstall(ctx context.Context, in *extension.UninstallReques } func (s *Extension) Action(ctx context.Context, in *extension.ActionRequest) (*extension.ActionResponse, error) { - extensionID := in.Extension - if extensionID == "" { + ext := in.Extension + if ext == "" { actionURL, err := extension.NewActionURL(in.Action) if err != nil { return nil, err } - extensionID = actionURL.Extension() + ext = actionURL.Extension() } - ok, err := extension.CheckInstalled(ctx, s.Content, in.SpaceId, in.EnvId, extensionID) + ok, err := extension.CheckInstalled(ctx, s.Content, in.SpaceId, in.EnvId, ext) if err != nil { return nil, errors.Wrap(err, "check extension installed") } -- GitLab