modulepackage
0.0.0-20240229052406-977ba187bbd2
Repository: https://github.com/dreamph/validation.git
Documentation: pkg.go.dev
# README
Validation Builder build on top ozzo-validation
Example Usage
package main
import (
"fmt"
"github.com/dreamph/validation"
)
type Wrapper struct {
Attr1 int `json:"attr1"`
Type int `json:"type"`
FieldOne FieldOne `json:"fieldOne"`
FieldTwo *FieldTwo `json:"fieldTwo"`
FieldThree []FieldThree `json:"fieldThree"`
}
type FieldOne struct {
FieldThree string `json:"fieldThree"`
FieldFour string `json:"fieldFour"`
}
type FieldTwo struct {
FieldFive int `json:"fieldFive"`
}
type FieldThree struct {
Data int `json:"data"`
}
func main() {
request := Wrapper{
Attr1: 0,
Type: 3,
FieldOne: FieldOne{
FieldThree: "Test",
FieldFour: "",
},
FieldTwo: &FieldTwo{
FieldFive: 16,
},
FieldThree: []FieldThree{
{Data: -1},
},
}
validationBuilder := validation.NewStructValidationBuilder(&request)
validationBuilder.AddRequiredFieldRules(
validation.Field(&request.Type, validation.Required, validation.In(1, 2, 3)),
)
validationBuilder.AddFieldRules(
validation.Field(&request.Attr1, validation.Required),
)
validationBuilder.AddFieldRules(
validation.StructField[FieldOne](&request.FieldOne, func(value FieldOne) error {
return validation.ValidateStruct(&value,
validation.Field(&value.FieldThree, validation.Required),
validation.Field(&value.FieldFour, validation.Required),
)
}),
validation.StructField[FieldTwo](&request.FieldTwo, func(value FieldTwo) error {
return validation.ValidateStruct(&value,
validation.Field(&value.FieldFive, validation.Required),
)
}),
validation.ArrayField[FieldThree](&request.FieldThree, func(value FieldThree, i int) error {
return validation.ValidateStruct(&value,
validation.Field(&value.Data, validation.Required, validation.Min(0)),
)
}),
)
err := validationBuilder.Validate()
if err != nil {
fmt.Println(err)
}
}
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Variables
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Type aliases
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author