Skip to content
Snippets Groups Projects
Select Git revision
  • e2830c978784d7b7030514c93a4975223729ef15
  • master default protected
  • fix/PRXS-3401-ValidateValidationOpts
  • feature/PRXS-3383-CollectionsRankSortAPI
  • feature/3149-LocaleCodeAsID-Feature
  • feature/PRXS-3383-CollectionsSort
  • feature/3109-SerializeFeature
  • release/0.33
  • feature/3109-RecoverySchema
  • feature/3109-feature
  • fix/PRXS-3369-ValidateFields
  • refactor/PRXS-3306-MovePkgGroup1
  • refactor/6-pkg-refactor-expr
  • fix/PRXS-3360-TemplateBuilderPatch
  • feature/3293-MongoV2
  • feature/3272-GoVersionUp
  • feature/PRXS-3218-HideTemplateActions
  • feature/PRXS-3234-PruneIdents
  • feature/3146-UpdateItemStorageInterface
  • feature/3274-ObjectIndexesFixes
  • feature/PRXS-3143-3235-ReferenceOptions
  • v0.33.1
  • v0.32.0
  • v0.31.1
  • v0.31.0
  • v0.30.0
  • v0.29.0
  • v0.28.0
  • v0.27.0-alpha.1+16
  • v0.27.0-alpha.1+15
  • v0.27.0-alpha.1+14
  • v0.27.0-alpha.1+13
  • v0.27.0-alpha.1+12
  • v0.27.0-alpha.1+11
  • v0.27.0-alpha.1+10
  • v0.27.0-alpha.1+9
  • v0.27.0-alpha.1+8
  • v0.27.0-alpha.1+7
  • v0.27.0-alpha.1+6
  • v0.27.0-alpha.1+5
  • v0.27.0-alpha.1+4
41 results

setup.go

Blame
  • setup.go 5.65 KiB
    package setup
    
    import (
    	"context"
    
    	"git.perx.ru/perxis/perxis-go/pkg/clients"
    	"git.perx.ru/perxis/perxis-go/pkg/collections"
    	"git.perx.ru/perxis/perxis-go/pkg/content"
    	"git.perx.ru/perxis/perxis-go/pkg/errors"
    	"git.perx.ru/perxis/perxis-go/pkg/items"
    	"git.perx.ru/perxis/perxis-go/pkg/roles"
    	"git.perx.ru/perxis/perxis-go/pkg/spaces"
    	"go.uber.org/zap"
    )
    
    var (
    	ErrInvalidSetupConfig = errors.New("invalid setup config")
    )
    
    // Setup реализует процесс настройки пространства. Указав необходимые требования к конфигурации пространства можно
    // выполнить процесс установки, проверки и удаления требований.
    type Setup struct {
    	SpaceID       string
    	EnvironmentID string
    
    	Roles       []RoleConfig
    	Clients     []ClientConfig
    	Collections []CollectionConfig
    	Items       []ItemConfig
    
    	content *content.Content
    
    	force  bool
    	remove bool
    
    	errors []error
    	logger *zap.Logger
    }
    
    func NewSetup(content *content.Content, spaceID, environmentID string, logger *zap.Logger) *Setup {
    	if logger == nil {
    		logger = zap.NewNop()
    	}
    
    	logger = logger.With(zap.String("Space", spaceID), zap.String("Environment", environmentID))
    
    	return &Setup{
    		SpaceID:       spaceID,
    		EnvironmentID: environmentID,
    		content:       content,
    		logger:        logger,
    	}
    }
    
    func (s *Setup) WithForce(force bool) *Setup {
    	setup := *s
    	setup.force = force
    	return &setup
    }
    
    func (s *Setup) IsForce() bool {
    	return s.force
    }
    
    func (s *Setup) WithRemove(remove bool) *Setup {
    	setup := *s
    	setup.remove = remove
    	return &setup
    }