go validator example

Example: go validator example

// NOTED: if value or key is exist in mapping = error 
// NOTED: if value or key is not exist in mapping = not error
// more validation struct reference follow this link -> https://github.com/go-playground/validator
 
// example usage
package main
 
import (
    "fmt"
    util "github.com/restuwahyu13/customvalidator/utils"
)
 
type User struct {
    Fullname       string     `validate:"required,lowercase"`
    Email          string     `validate:"required,email"`
}
 
func main() {
    var input User
    
    input.Fullname = "Restu Wahyu Saputra"
    input.Email = "restuwahyu13@#zetmail.com"
 
    resultErr := util.GoValidator(input)
 
    if resultErr["Fullname"] == "" {
      fmt.Println("Fullname is required")
      return
    }
 
    if resultErr["Email"] == "" {
      fmt.Println("Emai is required")
      return
    }
 
    if resultErr["Fullname"] == "Restu Wahyu Saputra" {
      fmt.Println("Fullname must be lowercase not camelcase")
      return
    }
 
    if resultErr["Email"] == "restuwahyu13@#zetmail.com" {
      fmt.Println("Emai is not valid")
      return
    }
}
 
// example custom validator
package util
 
import "github.com/go-playground/validator/v10"
 
var validate *validator.Validate
 
func GoValidator(s interface{}) map[string]interface{} {
 
    validate = validator.New()
 
    err := validate.Struct(s)
    errObject := make(map[string]interface{})
 
    if err != nil {
        for _, errResult := range  err.(validator.ValidationErrors) {
            errObject[errResult.StructField()] = errResult.Value()
        }
    }
 
    return errObject
}

Tags:

Misc Example