Documentation
¶
Overview ¶
Package validators contains entity validation logic
Package validators contains entity validation logic
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrPrivateRepoForbidden is returned when a private repository is not allowed ErrPrivateRepoForbidden = util.UserVisibleError(codes.InvalidArgument, "private repositories are not allowed in this project") // ErrArchivedRepoForbidden is returned when an archived repository cannot be registered ErrArchivedRepoForbidden = util.UserVisibleError(codes.InvalidArgument, "archived repositories cannot be registered") )
Functions ¶
This section is empty.
Types ¶
type RepositoryValidator ¶
type RepositoryValidator struct {
// contains filtered or unexported fields
}
RepositoryValidator validates repository entity creation. This validator should be registered for ENTITY_REPOSITORIES using the ValidatorRegistry.AddValidator method.
func NewRepositoryValidator ¶
func NewRepositoryValidator(store db.Store) *RepositoryValidator
NewRepositoryValidator creates a new RepositoryValidator
func (*RepositoryValidator) Validate ¶
func (v *RepositoryValidator) Validate( ctx context.Context, props *properties.Properties, projectID uuid.UUID, ) error
Validate checks if a repository entity can be created. This validator is called only for repositories since it's registered specifically for that entity type via the ValidatorRegistry.
type Validator ¶
type Validator interface {
// Validate returns nil if entity is valid, error otherwise.
Validate(
ctx context.Context,
props *properties.Properties,
projectID uuid.UUID,
) error
}
Validator validates an entity of a specific type. Unlike a general validator, this does NOT receive entityType since validators are registered for specific entity types.
type ValidatorHandle ¶
type ValidatorHandle struct {
// contains filtered or unexported fields
}
ValidatorHandle is an opaque handle returned when registering a validator. It can be used to remove the validator later.
type ValidatorRegistry ¶
type ValidatorRegistry interface {
// AddValidator registers a validator for a specific entity type.
// Returns a handle that can be used to remove the validator.
AddValidator(entityType pb.Entity, validator Validator) ValidatorHandle
// RemoveValidator removes a previously registered validator.
RemoveValidator(handle ValidatorHandle)
// Validate runs all validators registered for the given entity type.
// Returns nil if no validators are registered (validation is optional).
// Returns the first validation error encountered.
Validate(
ctx context.Context,
entityType pb.Entity,
props *properties.Properties,
projectID uuid.UUID,
) error
// HasValidators returns true if at least one validator is registered
// for the given entity type.
HasValidators(entityType pb.Entity) bool
}
ValidatorRegistry manages entity validators by entity type. Validators register for specific entity types and are called when entities of that type are created.
func NewValidatorRegistry ¶
func NewValidatorRegistry() ValidatorRegistry
NewValidatorRegistry creates a new validator registry.