Documentation
¶
Index ¶
- Variables
- func Attributes(attributes map[string]string) contractsvalidation.Option
- func CustomFilters(filters []contractsvalidation.Filter) contractsvalidation.Option
- func Filters(filters map[string]any) contractsvalidation.Option
- func MaxMultipartMemory(maxMemory int64) contractsvalidation.Option
- func Messages(messages map[string]string) contractsvalidation.Option
- func PrepareForValidation(prepare func(ctx context.Context, data contractsvalidation.Data) error) contractsvalidation.Option
- type DataBag
- type Engine
- type Errors
- type ParsedRule
- type RuleContext
- type ServiceProvider
- type Validation
- func (r *Validation) AddFilters(filters []validatecontract.Filter) error
- func (r *Validation) AddRules(rules []validatecontract.Rule) error
- func (r *Validation) Filters() []validatecontract.Filter
- func (r *Validation) Make(ctx context.Context, data any, rules map[string]any, ...) (validatecontract.Validator, error)
- func (r *Validation) Rules() []validatecontract.Rule
- type Validator
Constants ¶
This section is empty.
Variables ¶
var LangFS embed.FS
Functions ¶
func Attributes ¶
func Attributes(attributes map[string]string) contractsvalidation.Option
func CustomFilters ¶ added in v1.15.0
func CustomFilters(filters []contractsvalidation.Filter) contractsvalidation.Option
func MaxMultipartMemory ¶ added in v1.18.0
func MaxMultipartMemory(maxMemory int64) contractsvalidation.Option
func PrepareForValidation ¶
func PrepareForValidation(prepare func(ctx context.Context, data contractsvalidation.Data) error) contractsvalidation.Option
Types ¶
type DataBag ¶ added in v1.18.0
type DataBag struct {
// contains filtered or unexported fields
}
DataBag provides a unified data abstraction for validation. It supports nested data access via dot notation (e.g., "user.name", "users.0.email").
func NewDataBag ¶ added in v1.18.0
NewDataBag creates a DataBag from various input types: - map[string]any (supports nested maps/slices) - url.Values / map[string][]string (single values unwrapped from slices) - struct (reflected via "form" tag)
func NewDataBagFromRequest ¶ added in v1.18.0
NewDataBagFromRequest parses an HTTP request into a DataBag. maxMemory controls the maximum memory (in bytes) used to buffer multipart form data before spilling to disk. If 0, defaults to 32 MB.
func (*DataBag) Get ¶ added in v1.18.0
Get retrieves a value using dot notation. Supports nested keys: "user.name", array indexes: "users.0.email", and wildcards.
type Engine ¶ added in v1.18.0
type Engine struct {
// contains filtered or unexported fields
}
Engine is the core validation orchestrator.
func NewEngine ¶ added in v1.18.0
func NewEngine(ctx context.Context, data *DataBag, rules map[string][]ParsedRule, opts engineOptions) *Engine
NewEngine creates a new validation engine.
func (*Engine) Validate ¶ added in v1.18.0
Validate runs all validation rules and returns the error bag.
func (*Engine) ValidatedData ¶ added in v1.18.0
ValidatedData returns the data for all fields that have validation rules, excluding fields marked for exclusion. Callers should check Errors first to determine if validation passed before using the result.
type Errors ¶
type Errors struct {
// contains filtered or unexported fields
}
Errors collects validation error messages. Structure: field -> rule -> message
type ParsedRule ¶ added in v1.18.0
ParsedRule represents a single parsed validation rule with its name and parameters.
func ParseRuleSlice ¶ added in v1.18.0
func ParseRuleSlice(rules []string) []ParsedRule
ParseRuleSlice parses a slice of individual rule strings into a slice of ParsedRule. Each element is parsed independently, avoiding pipe-splitting issues with regex patterns. Example: []string{"required", "regex:^(foo|bar)$", "string"} -> [{required []}, {regex [^(foo|bar)$]}, {string []}]
func ParseRules ¶ added in v1.18.0
func ParseRules(ruleString string) []ParsedRule
ParseRules parses a pipe-separated rule string into a slice of ParsedRule. Example: "required|string|max:255|in:a,b,c" -> [{required []}, {string []}, {max [255]}, {in [a b c]}]
type RuleContext ¶ added in v1.18.0
type RuleContext struct {
Ctx context.Context
Attribute string // Current field name
Value any // Field value
Parameters []string // Rule parameters
Data *DataBag // Full data set
Rules map[string][]ParsedRule // All field rules (for type inference)
}
RuleContext provides context for rule evaluation.
type ServiceProvider ¶
type ServiceProvider struct {
}
func (*ServiceProvider) Boot ¶
func (r *ServiceProvider) Boot(app foundation.Application)
func (*ServiceProvider) Register ¶
func (r *ServiceProvider) Register(app foundation.Application)
func (*ServiceProvider) Relationship ¶ added in v1.15.12
func (r *ServiceProvider) Relationship() binding.Relationship
type Validation ¶
type Validation struct {
// contains filtered or unexported fields
}
func NewValidation ¶
func NewValidation() *Validation
func (*Validation) AddFilters ¶ added in v1.15.0
func (r *Validation) AddFilters(filters []validatecontract.Filter) error
func (*Validation) AddRules ¶
func (r *Validation) AddRules(rules []validatecontract.Rule) error
func (*Validation) Filters ¶ added in v1.15.0
func (r *Validation) Filters() []validatecontract.Filter
func (*Validation) Make ¶
func (r *Validation) Make(ctx context.Context, data any, rules map[string]any, options ...validatecontract.Option) (validatecontract.Validator, error)
func (*Validation) Rules ¶
func (r *Validation) Rules() []validatecontract.Rule
type Validator ¶
type Validator struct {
// contains filtered or unexported fields
}
func NewValidator ¶
func (*Validator) Errors ¶
func (v *Validator) Errors() httpvalidate.Errors