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.go40
1 files changed, 26 insertions, 14 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
index c57a120fc..c03afe75b 100644
--- a/vendor/github.com/gin-gonic/gin/binding/default_validator.go
+++ b/vendor/github.com/gin-gonic/gin/binding/default_validator.go
@@ -1,4 +1,4 @@
-// Copyright 2017 Manu Martinez-Almeida. All rights reserved.
+// 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.
@@ -18,23 +18,35 @@ type defaultValidator struct {
validate *validator.Validate
}
-type sliceValidateError []error
+type SliceValidationError []error
-func (err sliceValidateError) Error() string {
- var errMsgs []string
- for i, e := range err {
- if e == nil {
- continue
+// 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())
+ }
+ }
}
- errMsgs = append(errMsgs, fmt.Sprintf("[%d]: %s", i, e.Error()))
+ return b.String()
}
- return strings.Join(errMsgs, "\n")
}
var _ StructValidator = &defaultValidator{}
// ValidateStruct receives any kind of type, but only performed struct or pointer to struct type.
-func (v *defaultValidator) ValidateStruct(obj interface{}) error {
+func (v *defaultValidator) ValidateStruct(obj any) error {
if obj == nil {
return nil
}
@@ -47,7 +59,7 @@ func (v *defaultValidator) ValidateStruct(obj interface{}) error {
return v.validateStruct(obj)
case reflect.Slice, reflect.Array:
count := value.Len()
- validateRet := make(sliceValidateError, 0)
+ validateRet := make(SliceValidationError, 0)
for i := 0; i < count; i++ {
if err := v.ValidateStruct(value.Index(i).Interface()); err != nil {
validateRet = append(validateRet, err)
@@ -63,7 +75,7 @@ func (v *defaultValidator) ValidateStruct(obj interface{}) error {
}
// validateStruct receives struct type
-func (v *defaultValidator) validateStruct(obj interface{}) error {
+func (v *defaultValidator) validateStruct(obj any) error {
v.lazyinit()
return v.validate.Struct(obj)
}
@@ -71,8 +83,8 @@ func (v *defaultValidator) validateStruct(obj interface{}) error {
// 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://godoc.org/gopkg.in/go-playground/validator.v8
-func (v *defaultValidator) Engine() interface{} {
+// https://pkg.go.dev/github.com/go-playground/validator/v10
+func (v *defaultValidator) Engine() any {
v.lazyinit()
return v.validate
}