Update simple.go

tmp blank out of file
pull/139/head
Dean Karn 9 years ago
parent d802346da4
commit 790122c21c
  1. 242
      examples/simple.go

@ -1,150 +1,150 @@
package main package main
import ( // import (
"errors" // "errors"
"fmt" // "fmt"
"reflect" // "reflect"
sql "database/sql/driver" // sql "database/sql/driver"
"gopkg.in/bluesuncorp/validator.v6" // "gopkg.in/bluesuncorp/validator.v6"
) // )
// User contains user information // // User contains user information
type User struct { // type User struct {
FirstName string `validate:"required"` // FirstName string `validate:"required"`
LastName string `validate:"required"` // LastName string `validate:"required"`
Age uint8 `validate:"gte=0,lte=130"` // Age uint8 `validate:"gte=0,lte=130"`
Email string `validate:"required,email"` // Email string `validate:"required,email"`
FavouriteColor string `validate:"hexcolor|rgb|rgba"` // FavouriteColor string `validate:"hexcolor|rgb|rgba"`
Addresses []*Address `validate:"required,dive,required"` // a person can have a home and cottage... // Addresses []*Address `validate:"required,dive,required"` // a person can have a home and cottage...
} // }
// // Address houses a users address information
// type Address struct {
// Street string `validate:"required"`
// City string `validate:"required"`
// Planet string `validate:"required"`
// Phone string `validate:"required"`
// }
// var validate *validator.Validate
func main() {
// config := validator.Config{
// TagName: "validate",
// ValidationFuncs: validator.BakedInValidators,
// }
// Address houses a users address information // validate = validator.New(config)
type Address struct {
Street string `validate:"required"` // validateStruct()
City string `validate:"required"` // validateField()
Planet string `validate:"required"`
Phone string `validate:"required"`
} }
var validate *validator.Validate // func validateStruct() {
func main() { // address := &Address{
// Street: "Eavesdown Docks",
// Planet: "Persphone",
// Phone: "none",
// }
config := validator.Config{ // user := &User{
TagName: "validate", // FirstName: "Badger",
ValidationFuncs: validator.BakedInValidators, // LastName: "Smith",
} // Age: 135,
// Email: "Badger.Smith@gmail.com",
// FavouriteColor: "#000",
// Addresses: []*Address{address},
// }
validate = validator.New(config) // // returns nil or ValidationErrors ( map[string]*FieldError )
// errs := validate.Struct(user)
validateStruct() // if errs != nil {
validateField()
}
func validateStruct() { // fmt.Println(errs) // output: Key: "User.Age" Error:Field validation for "Age" failed on the "lte" tag
// // Key: "User.Addresses[0].City" Error:Field validation for "City" failed on the "required" tag
address := &Address{ // err := errs["User.Addresses[0].City"]
Street: "Eavesdown Docks", // fmt.Println(err.Field) // output: City
Planet: "Persphone", // fmt.Println(err.Tag) // output: required
Phone: "none", // fmt.Println(err.Kind) // output: string
} // fmt.Println(err.Type) // output: string
// fmt.Println(err.Param) // output:
user := &User{ // fmt.Println(err.Value) // output:
FirstName: "Badger",
LastName: "Smith",
Age: 135,
Email: "Badger.Smith@gmail.com",
FavouriteColor: "#000",
Addresses: []*Address{address},
}
// returns nil or ValidationErrors ( map[string]*FieldError )
errs := validate.Struct(user)
if errs != nil {
fmt.Println(errs) // output: Key: "User.Age" Error:Field validation for "Age" failed on the "lte" tag
// Key: "User.Addresses[0].City" Error:Field validation for "City" failed on the "required" tag
err := errs["User.Addresses[0].City"]
fmt.Println(err.Field) // output: City
fmt.Println(err.Tag) // output: required
fmt.Println(err.Kind) // output: string
fmt.Println(err.Type) // output: string
fmt.Println(err.Param) // output:
fmt.Println(err.Value) // output:
// from here you can create your own error messages in whatever language you wish
return
}
// save user to database
}
func validateField() { // // from here you can create your own error messages in whatever language you wish
myEmail := "joeybloggs.gmail.com" // return
// }
errs := validate.Field(myEmail, "required,email") // // save user to database
// }
if errs != nil { // func validateField() {
fmt.Println(errs) // output: Key: "" Error:Field validation for "" failed on the "email" tag // myEmail := "joeybloggs.gmail.com"
return
}
// email ok, move on // errs := validate.Field(myEmail, "required,email")
}
var validate2 *validator.Validate // if errs != nil {
// fmt.Println(errs) // output: Key: "" Error:Field validation for "" failed on the "email" tag
// return
// }
type valuer struct { // // email ok, move on
Name string // }
}
func (v valuer) Value() (sql.Value, error) { // var validate2 *validator.Validate
if v.Name == "errorme" { // type valuer struct {
return nil, errors.New("some kind of error") // Name string
} // }
if v.Name == "blankme" { // func (v valuer) Value() (sql.Value, error) {
return "", nil
}
if len(v.Name) == 0 { // if v.Name == "errorme" {
return nil, nil // return nil, errors.New("some kind of error")
} // }
return v.Name, nil // if v.Name == "blankme" {
} // return "", nil
// }
func main2() { // if len(v.Name) == 0 {
// return nil, nil
// }
customTypes := map[reflect.Type]validator.CustomTypeFunc{} // return v.Name, nil
customTypes[reflect.TypeOf((*sql.Valuer)(nil))] = ValidateValuerType // }
customTypes[reflect.TypeOf(valuer{})] = ValidateValuerType
config := validator.Config{ // func main2() {
TagName: "validate",
ValidationFuncs: validator.BakedInValidators,
CustomTypeFuncs: customTypes,
}
validate2 = validator.New(config) // customTypes := map[reflect.Type]validator.CustomTypeFunc{}
// customTypes[reflect.TypeOf((*sql.Valuer)(nil))] = ValidateValuerType
// customTypes[reflect.TypeOf(valuer{})] = ValidateValuerType
validateCustomFieldType() // config := validator.Config{
} // TagName: "validate",
// ValidationFuncs: validator.BakedInValidators,
// CustomTypeFuncs: customTypes,
// }
func validateCustomFieldType() { // validate2 = validator.New(config)
val := valuer{
Name: "blankme",
}
errs := validate2.Field(val, "required") // validateCustomFieldType()
if errs != nil { // }
fmt.Println(errs) // output: Key: "" Error:Field validation for "" failed on the "required" tag
return
}
// all ok // func validateCustomFieldType() {
} // val := valuer{
// Name: "blankme",
// }
// errs := validate2.Field(val, "required")
// if errs != nil {
// fmt.Println(errs) // output: Key: "" Error:Field validation for "" failed on the "required" tag
// return
// }
// // all ok
// }

Loading…
Cancel
Save