summaryrefslogtreecommitdiff
path: root/vendor/github.com/gin-gonic/gin/binding/default_validator.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gin-gonic/gin/binding/default_validator.go')
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/default_validator.go100
1 files changed, 0 insertions, 100 deletions
diff --git a/vendor/github.com/gin-gonic/gin/binding/default_validator.go b/vendor/github.com/gin-gonic/gin/binding/default_validator.go
deleted file mode 100644
index ac43d7cc5..000000000
--- a/vendor/github.com/gin-gonic/gin/binding/default_validator.go
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright 2017 Manu Martinez-Almeida. All rights reserved.
-// Use of this source code is governed by a MIT style
-// license that can be found in the LICENSE file.
-
-package binding
-
-import (
- "fmt"
- "reflect"
- "strings"
- "sync"
-
- "github.com/go-playground/validator/v10"
-)
-
-type defaultValidator struct {
- once sync.Once
- validate *validator.Validate
-}
-
-type SliceValidationError []error
-
-// Error concatenates all error elements in SliceValidationError into a single string separated by \n.
-func (err SliceValidationError) Error() string {
- n := len(err)
- switch n {
- case 0:
- return ""
- default:
- var b strings.Builder
- if err[0] != nil {
- fmt.Fprintf(&b, "[%d]: %s", 0, err[0].Error())
- }
- if n > 1 {
- for i := 1; i < n; i++ {
- if err[i] != nil {
- b.WriteString("\n")
- fmt.Fprintf(&b, "[%d]: %s", i, err[i].Error())
- }
- }
- }
- return b.String()
- }
-}
-
-var _ StructValidator = (*defaultValidator)(nil)
-
-// ValidateStruct receives any kind of type, but only performed struct or pointer to struct type.
-func (v *defaultValidator) ValidateStruct(obj any) error {
- if obj == nil {
- return nil
- }
-
- value := reflect.ValueOf(obj)
- switch value.Kind() {
- case reflect.Ptr:
- if value.Elem().Kind() != reflect.Struct {
- return v.ValidateStruct(value.Elem().Interface())
- }
- return v.validateStruct(obj)
- case reflect.Struct:
- return v.validateStruct(obj)
- case reflect.Slice, reflect.Array:
- count := value.Len()
- validateRet := make(SliceValidationError, 0)
- for i := 0; i < count; i++ {
- if err := v.ValidateStruct(value.Index(i).Interface()); err != nil {
- validateRet = append(validateRet, err)
- }
- }
- if len(validateRet) == 0 {
- return nil
- }
- return validateRet
- default:
- return nil
- }
-}
-
-// validateStruct receives struct type
-func (v *defaultValidator) validateStruct(obj any) error {
- v.lazyinit()
- return v.validate.Struct(obj)
-}
-
-// Engine returns the underlying validator engine which powers the default
-// Validator instance. This is useful if you want to register custom validations
-// or struct level validations. See validator GoDoc for more info -
-// https://pkg.go.dev/github.com/go-playground/validator/v10
-func (v *defaultValidator) Engine() any {
- v.lazyinit()
- return v.validate
-}
-
-func (v *defaultValidator) lazyinit() {
- v.once.Do(func() {
- v.validate = validator.New()
- v.validate.SetTagName("binding")
- })
-}