Documentation
¶
Index ¶
- Variables
- func ClampDuration(value, min, max time.Duration) time.Duration
- func ClampInt(value, min, max int) int
- func DefaultOr[T comparable](value, defaultValue T) T
- func DefaultOrDuration(value, defaultValue time.Duration) time.Duration
- func DefaultOrInt(value, defaultValue int) int
- func ValidateBatchSize(size int) error
- func ValidateConfig(config Validatable) error
- func ValidateEdgeRequest(req *EdgeRequest) error
- func ValidateLabel(label string) error
- func ValidateNodeRequest(req *NodeRequest) error
- func ValidatePropertyKey(key string) error
- type ConfigValidator
- func (cv *ConfigValidator) Custom(field string, fn func() error) *ConfigValidator
- func (cv *ConfigValidator) Error() error
- func (cv *ConfigValidator) Errors() []error
- func (cv *ConfigValidator) HasErrors() bool
- func (cv *ConfigValidator) MaxDuration(field string, value, max time.Duration) *ConfigValidator
- func (cv *ConfigValidator) MaxInt(field string, value, max int) *ConfigValidator
- func (cv *ConfigValidator) MinDuration(field string, value, min time.Duration) *ConfigValidator
- func (cv *ConfigValidator) MinInt(field string, value, min int) *ConfigValidator
- func (cv *ConfigValidator) NonNegative(field string, value int) *ConfigValidator
- func (cv *ConfigValidator) NonNegativeFloat(field string, value float64) *ConfigValidator
- func (cv *ConfigValidator) OneOf(field, value string, allowed []string) *ConfigValidator
- func (cv *ConfigValidator) Positive(field string, value int) *ConfigValidator
- func (cv *ConfigValidator) PositiveFloat(field string, value float64) *ConfigValidator
- func (cv *ConfigValidator) RangeDuration(field string, value, min, max time.Duration) *ConfigValidator
- func (cv *ConfigValidator) RangeInt(field string, value, min, max int) *ConfigValidator
- func (cv *ConfigValidator) Required(field, value string) *ConfigValidator
- func (cv *ConfigValidator) RequiredDuration(field string, value time.Duration) *ConfigValidator
- func (cv *ConfigValidator) RequiredInt(field string, value int) *ConfigValidator
- func (cv *ConfigValidator) Validate() error
- func (cv *ConfigValidator) When(condition bool, validations func(*ConfigValidator)) *ConfigValidator
- type EdgeRequest
- type NodeRequest
- type Validatable
Constants ¶
This section is empty.
Variables ¶
var ( // Validation constants MaxLabels = 10 MaxLabelLength = 50 MaxProperties = 100 MaxPropertyKey = 100 MaxBatchSize = 1000 MinBatchSize = 1 )
Functions ¶
func ClampDuration ¶
ClampDuration clamps a duration to the specified range [min, max].
func DefaultOr ¶
func DefaultOr[T comparable](value, defaultValue T) T
DefaultOr returns the value if it's non-zero, otherwise returns the default.
func DefaultOrDuration ¶
DefaultOrDuration returns the value if it's positive, otherwise returns the default.
func DefaultOrInt ¶
DefaultOrInt returns the value if it's positive, otherwise returns the default.
func ValidateBatchSize ¶
ValidateBatchSize validates the size of a batch request
func ValidateConfig ¶
func ValidateConfig(config Validatable) error
ValidateConfig validates any type that implements Validatable.
func ValidateEdgeRequest ¶
func ValidateEdgeRequest(req *EdgeRequest) error
ValidateEdgeRequest validates an edge creation/update request
func ValidateLabel ¶ added in v1.4.0
ValidateLabel validates a single label string, using the same pattern and length bound ValidateNodeRequest applies to each label in a node request. Exported for callers that validate one label in isolation — the admin uniqueness-rules routes (pkg/api), for one — rather than as part of a full NodeRequest.
Deliberately NOT called from ValidateNodeRequest's own per-label loop (fix round 1, Minor): that loop has no explicit empty-string branch — an empty label already fails labelPattern's `+` (one-or-more) quantifier, so it falls through to the "contains invalid characters" message. ValidateLabel adds an explicit empty check ahead of the pattern match so a caller validating one label gets "label cannot be empty" rather than the less specific "invalid characters" wording. Routing ValidateNodeRequest through this function would change that message for every existing caller of ValidateNodeRequest on an empty label — a wire-visible behaviour change outside this task's scope — so the two stay separate rather than sharing one implementation.
func ValidateNodeRequest ¶
func ValidateNodeRequest(req *NodeRequest) error
ValidateNodeRequest validates a node creation/update request
func ValidatePropertyKey ¶
ValidatePropertyKey validates a property key
Types ¶
type ConfigValidator ¶
type ConfigValidator struct {
// contains filtered or unexported fields
}
ConfigValidator provides a fluent interface for validating configuration values. It collects all validation errors rather than failing on the first one.
func NewConfigValidator ¶
func NewConfigValidator(configName string) *ConfigValidator
NewConfigValidator creates a new config validator with the given config name.
func (*ConfigValidator) Custom ¶
func (cv *ConfigValidator) Custom(field string, fn func() error) *ConfigValidator
Custom applies a custom validation function.
func (*ConfigValidator) Error ¶
func (cv *ConfigValidator) Error() error
Error returns the first validation error, or nil if no errors.
func (*ConfigValidator) Errors ¶
func (cv *ConfigValidator) Errors() []error
Errors returns all validation errors.
func (*ConfigValidator) HasErrors ¶
func (cv *ConfigValidator) HasErrors() bool
HasErrors returns true if any validation errors occurred.
func (*ConfigValidator) MaxDuration ¶
func (cv *ConfigValidator) MaxDuration(field string, value, max time.Duration) *ConfigValidator
MaxDuration validates that a duration does not exceed the maximum.
func (*ConfigValidator) MaxInt ¶
func (cv *ConfigValidator) MaxInt(field string, value, max int) *ConfigValidator
MaxInt validates that an int field does not exceed the maximum value.
func (*ConfigValidator) MinDuration ¶
func (cv *ConfigValidator) MinDuration(field string, value, min time.Duration) *ConfigValidator
MinDuration validates that a duration is at least the minimum.
func (*ConfigValidator) MinInt ¶
func (cv *ConfigValidator) MinInt(field string, value, min int) *ConfigValidator
MinInt validates that an int field is at least the minimum value.
func (*ConfigValidator) NonNegative ¶
func (cv *ConfigValidator) NonNegative(field string, value int) *ConfigValidator
NonNegative validates that an int field is non-negative (>= 0).
func (*ConfigValidator) NonNegativeFloat ¶
func (cv *ConfigValidator) NonNegativeFloat(field string, value float64) *ConfigValidator
NonNegativeFloat validates that a float field is non-negative (>= 0).
func (*ConfigValidator) OneOf ¶
func (cv *ConfigValidator) OneOf(field, value string, allowed []string) *ConfigValidator
OneOf validates that a string field is one of the allowed values.
func (*ConfigValidator) Positive ¶
func (cv *ConfigValidator) Positive(field string, value int) *ConfigValidator
Positive validates that an int field is positive (> 0).
func (*ConfigValidator) PositiveFloat ¶
func (cv *ConfigValidator) PositiveFloat(field string, value float64) *ConfigValidator
PositiveFloat validates that a float field is positive (> 0).
func (*ConfigValidator) RangeDuration ¶
func (cv *ConfigValidator) RangeDuration(field string, value, min, max time.Duration) *ConfigValidator
RangeDuration validates that a duration is within the specified range.
func (*ConfigValidator) RangeInt ¶
func (cv *ConfigValidator) RangeInt(field string, value, min, max int) *ConfigValidator
RangeInt validates that an int field is within the specified range.
func (*ConfigValidator) Required ¶
func (cv *ConfigValidator) Required(field, value string) *ConfigValidator
Required validates that a string field is not empty.
func (*ConfigValidator) RequiredDuration ¶
func (cv *ConfigValidator) RequiredDuration(field string, value time.Duration) *ConfigValidator
RequiredDuration validates that a duration field is not zero.
func (*ConfigValidator) RequiredInt ¶
func (cv *ConfigValidator) RequiredInt(field string, value int) *ConfigValidator
RequiredInt validates that an int field is not zero.
func (*ConfigValidator) Validate ¶
func (cv *ConfigValidator) Validate() error
Validate returns a combined error if any validations failed.
func (*ConfigValidator) When ¶
func (cv *ConfigValidator) When(condition bool, validations func(*ConfigValidator)) *ConfigValidator
When conditionally applies validations if the condition is true.
type EdgeRequest ¶
type EdgeRequest struct {
FromNodeID uint64 `json:"fromNodeId" validate:"required,min=1"`
ToNodeID uint64 `json:"toNodeId" validate:"required,min=1"`
Type string `json:"type" validate:"required,min=1,max=50"`
Weight *float64 `json:"weight" validate:"omitempty"`
Properties map[string]any `json:"properties" validate:"omitempty,max=100"`
}
EdgeRequest represents a request to create or update an edge
type NodeRequest ¶
type NodeRequest struct {
Labels []string `json:"labels" validate:"required,min=1,max=10,dive,max=50"`
Properties map[string]any `json:"properties" validate:"omitempty,max=100"`
}
NodeRequest represents a request to create or update a node
type Validatable ¶
type Validatable interface {
Validate() error
}
Validatable is an interface for types that can validate themselves.