diff --git a/pkg/extension/extension.go b/pkg/extension/extension.go index 0e13061bd5a0256c073576c45ab8f41f40c8cd55..ae7878d56de53f423ea86c28fa2f263cef6cbd03 100644 --- a/pkg/extension/extension.go +++ b/pkg/extension/extension.go @@ -68,7 +68,7 @@ type Extension interface { } func CheckInstalled(ctx context.Context, content *content.Content, spaceID, envID, extension string) (bool, error) { - status, err := NewStorage(content).GetExtension(ctx, spaceID, envID, extension) + status, err := NewStorage(content, nil).GetExtension(ctx, spaceID, envID, extension) if err != nil { return false, err } diff --git a/pkg/extension/schema.go b/pkg/extension/schema.go index c2ad5dfd3efb87008167089c97d68b06b1d3d402..6b1ff266422d0d80605fb4460a0041f42f7769ff 100644 --- a/pkg/extension/schema.go +++ b/pkg/extension/schema.go @@ -74,9 +74,9 @@ func NewActionsCollection(spaceID, envID string) *collections.Collection { // UI sch.Field.UI.ListView = &field.View{Options: map[string]interface{}{ - "fields": []string{"name", "action", "kind", "target", "updated_at", "updated_by"}, - "sort": []string{"name"}, - "page_size": 50, + "fields": []interface{}{"name", "action", "kind", "target", "updated_at", "updated_by"}, + "sort": []interface{}{"name"}, + "page_size": float64(50), }} sch.Field.UI.Options["title"] = "name" @@ -130,9 +130,9 @@ func NewExtensionsCollection(spaceID, envID string) *collections.Collection { //UI sch.Field.UI.ListView = &field.View{Options: map[string]interface{}{ - "fields": []string{"id", "title", "updated_at", "updated_by"}, - "sort": []string{"title"}, - "page_size": 50, + "fields": []interface{}{"id", "title", "updated_at", "updated_by"}, + "sort": []interface{}{"title"}, + "page_size": float64(50), }} sch.Field.UI.Options["title"] = "title" diff --git a/pkg/extension/schema_test.go b/pkg/extension/schema_test.go index 7d33a4b5ef724ad2e2a9dc98723b39f8139a46b2..9892ba109597aac89bad74fc7f504d0a351de495 100644 --- a/pkg/extension/schema_test.go +++ b/pkg/extension/schema_test.go @@ -1,10 +1,14 @@ package extension import ( + "encoding/json" "reflect" "testing" + "git.perx.ru/perxis/perxis-go/pkg/collections" + "git.perx.ru/perxis/perxis-go/pkg/schema" "git.perx.ru/perxis/perxis-go/pkg/schema/validate" + "github.com/stretchr/testify/require" ) func Test_getEnumOpt(t *testing.T) { @@ -32,3 +36,17 @@ func Test_getEnumOpt(t *testing.T) { }) } } + +func TestEqualSchema(t *testing.T) { + for _, collection := range []*collections.Collection{ + NewActionsCollection("", ""), + NewExtensionsCollection("", ""), + } { + s1 := collection.Schema + b, err := s1.MarshalJSON() + require.NoError(t, err) + s2 := schema.New() + err = json.Unmarshal(b, s2) + require.Equal(t, s1.Field, s2.Field) + } +} diff --git a/pkg/extension/storage.go b/pkg/extension/storage.go index 0d8479c1b39ddc508c79280222b4e22df0d79ee7..3da54fec9223a0eb53ce5a88a59133be860425bb 100644 --- a/pkg/extension/storage.go +++ b/pkg/extension/storage.go @@ -10,6 +10,7 @@ import ( "git.perx.ru/perxis/perxis-go/pkg/errors" "git.perx.ru/perxis/perxis-go/pkg/setup" pb "git.perx.ru/perxis/perxis-go/proto/extensions" + "go.uber.org/zap" "git.perx.ru/perxis/perxis-go/pkg/content" "git.perx.ru/perxis/perxis-go/pkg/items" @@ -29,10 +30,14 @@ type Storage interface { type storage struct { content *content.Content + logger *zap.Logger } -func NewStorage(content *content.Content) Storage { - return &storage{content: content} +func NewStorage(content *content.Content, logger *zap.Logger) Storage { + if logger == nil { + logger = zap.NewNop() + } + return &storage{content: content, logger: logger} } func infoFromItem(extension string, item *items.Item) *Info { @@ -137,7 +142,7 @@ func (s *storage) DeleteExtension(ctx context.Context, spaceID, envID string, ex func (s *storage) init(ctx context.Context, spaceID, envID string) error { // миграция окружения не должна запуститься, поскольку окружение может быть сломано // расширениями - нужно дать возможность восстановиться - stp := setup.NewSetup(s.content, spaceID, envID, nil).AddCollections([]*collections.Collection{ + stp := setup.NewSetup(s.content, spaceID, envID, s.logger).AddCollections([]*collections.Collection{ NewExtensionsCollection(spaceID, envID), NewActionsCollection(spaceID, envID), }, setup.SkipMigration())