diff --git a/pkg/setup/collection.go b/pkg/setup/collection.go index 68cc765aa0fff5615f586f50778b8848f0cdf7b7..e597acfcabefd70a9a8abb3d2fed64c11fb274d2 100644 --- a/pkg/setup/collection.go +++ b/pkg/setup/collection.go @@ -141,6 +141,8 @@ func (s *Setup) InstallCollection(ctx context.Context, c *Collection) (updateSch // TODO: Проверить, что коллекция изменилась // TODO: Тест на сравнение схем + // Замена возможного алиаса окружения на реального ID окружения перед сравнением + collection.EnvID = exist.EnvID if !exist.Equal(collection) { if err = s.content.Collections.Update(ctx, collection); err != nil { return false, err diff --git a/pkg/setup/config.go b/pkg/setup/config.go index 14905ecd1601fec99616ec2940e40d96a19ed5d3..d7f68a90409ab338f8ff191e2f91bf80ddc0b130 100644 --- a/pkg/setup/config.go +++ b/pkg/setup/config.go @@ -45,7 +45,7 @@ func (cfg *Config) Load(fsys fs.FS) (*Config, error) { } if subFS, err := fs.Sub(fsys, "items"); err == nil { - if err = cfg.Items.Load(subFS); err != nil && !errors.Is(err, fs.ErrNotExist) { + if err = cfg.Items.Load(subFS, DecodeItem()); err != nil && !errors.Is(err, fs.ErrNotExist) { return nil, err } } diff --git a/pkg/setup/entity.go b/pkg/setup/entity.go index 4397606de7a99acbdc36b9bc110313d04b09bcaf..69cd2c8d5ef4224bbc270c0c8cbb8df1fdfa1bf1 100644 --- a/pkg/setup/entity.go +++ b/pkg/setup/entity.go @@ -90,14 +90,14 @@ func (l *EntityList[C, T]) AddMany(t []T, opt ...EntityOption[C, T]) { } // Filter возвращает список сущностей, удовлетворяющих фильтру -func (l *EntityList[C, T]) Filter(filter FilterFunc[T]) []*Entity[C, T] { - var res []*Entity[C, T] +func (l *EntityList[C, T]) Filter(filter FilterFunc[T]) *EntityList[C, T] { + res := make(EntityList[C, T], 0) for _, e := range *l { if filter(e.value) { res = append(res, e) } } - return res + return &res } // Get возвращает конфигурацию по ID