summaryrefslogtreecommitdiff
path: root/vendor/github.com/gin-gonic/gin/binding
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2021-11-27 15:26:58 +0100
committerLibravatar GitHub <noreply@github.com>2021-11-27 15:26:58 +0100
commit182b4eea73881c611a0f519576aa6ad2aa6799c2 (patch)
tree230fac469690fcee8797b13585e739be148d4789 /vendor/github.com/gin-gonic/gin/binding
parentRequire confirmed email when checking oauth token (#332) (diff)
downloadgotosocial-182b4eea73881c611a0f519576aa6ad2aa6799c2.tar.xz
Update dependencies (#333)
Diffstat (limited to 'vendor/github.com/gin-gonic/gin/binding')
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/binding.go4
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go4
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/default_validator.go26
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/form.go6
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/form_mapping.go29
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/header.go2
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/json.go4
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go14
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/protobuf.go9
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/uri.go2
10 files changed, 33 insertions, 67 deletions
diff --git a/vendor/github.com/gin-gonic/gin/binding/binding.go b/vendor/github.com/gin-gonic/gin/binding/binding.go
index deb71661b..5caeb581a 100644
--- a/vendor/github.com/gin-gonic/gin/binding/binding.go
+++ b/vendor/github.com/gin-gonic/gin/binding/binding.go
@@ -49,7 +49,7 @@ type BindingUri interface {
// StructValidator is the minimal interface which needs to be implemented in
// order for it to be used as the validator engine for ensuring the correctness
// of the request. Gin provides a default implementation for this using
-// https://github.com/go-playground/validator/tree/v10.6.1.
+// https://github.com/go-playground/validator/tree/v8.18.2.
type StructValidator interface {
// ValidateStruct can receive any kind of type and it should never panic, even if the configuration is not right.
// If the received type is a slice|array, the validation should be performed travel on every element.
@@ -65,7 +65,7 @@ type StructValidator interface {
}
// Validator is the default validator which implements the StructValidator
-// interface. It uses https://github.com/go-playground/validator/tree/v10.6.1
+// interface. It uses https://github.com/go-playground/validator/tree/v8.18.2
// under the hood.
var Validator StructValidator = &defaultValidator{}
diff --git a/vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go b/vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go
index 234244707..9afa3dcf6 100644
--- a/vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go
+++ b/vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go
@@ -47,7 +47,7 @@ type BindingUri interface {
// StructValidator is the minimal interface which needs to be implemented in
// order for it to be used as the validator engine for ensuring the correctness
// of the request. Gin provides a default implementation for this using
-// https://github.com/go-playground/validator/tree/v10.6.1.
+// https://github.com/go-playground/validator/tree/v8.18.2.
type StructValidator interface {
// ValidateStruct can receive any kind of type and it should never panic, even if the configuration is not right.
// If the received type is not a struct, any validation should be skipped and nil must be returned.
@@ -62,7 +62,7 @@ type StructValidator interface {
}
// Validator is the default validator which implements the StructValidator
-// interface. It uses https://github.com/go-playground/validator/tree/v10.6.1
+// interface. It uses https://github.com/go-playground/validator/tree/v8.18.2
// under the hood.
var Validator StructValidator = &defaultValidator{}
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 87fc4c665..c57a120fc 100644
--- a/vendor/github.com/gin-gonic/gin/binding/default_validator.go
+++ b/vendor/github.com/gin-gonic/gin/binding/default_validator.go
@@ -20,27 +20,15 @@ type defaultValidator struct {
type sliceValidateError []error
-// Error concatenates all error elements in sliceValidateError into a single string separated by \n.
func (err sliceValidateError) 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())
- }
- }
+ var errMsgs []string
+ for i, e := range err {
+ if e == nil {
+ continue
}
- return b.String()
+ errMsgs = append(errMsgs, fmt.Sprintf("[%d]: %s", i, e.Error()))
}
+ return strings.Join(errMsgs, "\n")
}
var _ StructValidator = &defaultValidator{}
@@ -83,7 +71,7 @@ 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://pkg.go.dev/github.com/go-playground/validator/v10
+// https://godoc.org/gopkg.in/go-playground/validator.v8
func (v *defaultValidator) Engine() interface{} {
v.lazyinit()
return v.validate
diff --git a/vendor/github.com/gin-gonic/gin/binding/form.go b/vendor/github.com/gin-gonic/gin/binding/form.go
index 040af9e20..b93c34cf4 100644
--- a/vendor/github.com/gin-gonic/gin/binding/form.go
+++ b/vendor/github.com/gin-gonic/gin/binding/form.go
@@ -22,8 +22,10 @@ func (formBinding) Bind(req *http.Request, obj interface{}) error {
if err := req.ParseForm(); err != nil {
return err
}
- if err := req.ParseMultipartForm(defaultMemory); err != nil && err != http.ErrNotMultipart {
- return err
+ if err := req.ParseMultipartForm(defaultMemory); err != nil {
+ if err != http.ErrNotMultipart {
+ return err
+ }
}
if err := mapForm(obj, req.Form); err != nil {
return err
diff --git a/vendor/github.com/gin-gonic/gin/binding/form_mapping.go b/vendor/github.com/gin-gonic/gin/binding/form_mapping.go
index f8b4b1239..2f4e45b40 100644
--- a/vendor/github.com/gin-gonic/gin/binding/form_mapping.go
+++ b/vendor/github.com/gin-gonic/gin/binding/form_mapping.go
@@ -16,17 +16,9 @@ import (
"github.com/gin-gonic/gin/internal/json"
)
-var (
- errUnknownType = errors.New("unknown type")
+var errUnknownType = errors.New("unknown type")
- // ErrConvertMapStringSlice can not covert to map[string][]string
- ErrConvertMapStringSlice = errors.New("can not convert to map slices of strings")
-
- // ErrConvertToMapString can not convert to map[string]string
- ErrConvertToMapString = errors.New("can not convert to map of strings")
-)
-
-func mapURI(ptr interface{}, m map[string][]string) error {
+func mapUri(ptr interface{}, m map[string][]string) error {
return mapFormByTag(ptr, m, "uri")
}
@@ -34,10 +26,6 @@ func mapForm(ptr interface{}, form map[string][]string) error {
return mapFormByTag(ptr, form, "form")
}
-func MapFormWithTag(ptr interface{}, form map[string][]string, tag string) error {
- return mapFormByTag(ptr, form, tag)
-}
-
var emptyField = reflect.StructField{}
func mapFormByTag(ptr interface{}, form map[string][]string, tag string) error {
@@ -83,7 +71,7 @@ func mapping(value reflect.Value, field reflect.StructField, setter setter, tag
return false, nil
}
- vKind := value.Kind()
+ var vKind = value.Kind()
if vKind == reflect.Ptr {
var isNew bool
@@ -121,7 +109,7 @@ func mapping(value reflect.Value, field reflect.StructField, setter setter, tag
if sf.PkgPath != "" && !sf.Anonymous { // unexported
continue
}
- ok, err := mapping(value.Field(i), sf, setter, tag)
+ ok, err := mapping(value.Field(i), tValue.Field(i), setter, tag)
if err != nil {
return false, err
}
@@ -210,7 +198,7 @@ func setWithProperType(val string, value reflect.Value, field reflect.StructFiel
case reflect.Int64:
switch value.Interface().(type) {
case time.Duration:
- return setTimeDuration(val, value)
+ return setTimeDuration(val, value, field)
}
return setIntField(val, 64, value)
case reflect.Uint:
@@ -310,6 +298,7 @@ func setTimeField(val string, structField reflect.StructField, value reflect.Val
t := time.Unix(tv/int64(d), tv%int64(d))
value.Set(reflect.ValueOf(t))
return nil
+
}
if val == "" {
@@ -359,7 +348,7 @@ func setSlice(vals []string, value reflect.Value, field reflect.StructField) err
return nil
}
-func setTimeDuration(val string, value reflect.Value) error {
+func setTimeDuration(val string, value reflect.Value, field reflect.StructField) error {
d, err := time.ParseDuration(val)
if err != nil {
return err
@@ -382,7 +371,7 @@ func setFormMap(ptr interface{}, form map[string][]string) error {
if el.Kind() == reflect.Slice {
ptrMap, ok := ptr.(map[string][]string)
if !ok {
- return ErrConvertMapStringSlice
+ return errors.New("cannot convert to map slices of strings")
}
for k, v := range form {
ptrMap[k] = v
@@ -393,7 +382,7 @@ func setFormMap(ptr interface{}, form map[string][]string) error {
ptrMap, ok := ptr.(map[string]string)
if !ok {
- return ErrConvertToMapString
+ return errors.New("cannot convert to map of strings")
}
for k, v := range form {
ptrMap[k] = v[len(v)-1] // pick last
diff --git a/vendor/github.com/gin-gonic/gin/binding/header.go b/vendor/github.com/gin-gonic/gin/binding/header.go
index b99302af8..179ce4ea2 100644
--- a/vendor/github.com/gin-gonic/gin/binding/header.go
+++ b/vendor/github.com/gin-gonic/gin/binding/header.go
@@ -29,6 +29,6 @@ type headerSource map[string][]string
var _ setter = headerSource(nil)
-func (hs headerSource) TrySet(value reflect.Value, field reflect.StructField, tagValue string, opt setOptions) (bool, error) {
+func (hs headerSource) TrySet(value reflect.Value, field reflect.StructField, tagValue string, opt setOptions) (isSetted bool, err error) {
return setByForm(value, field, hs, textproto.CanonicalMIMEHeaderKey(tagValue), opt)
}
diff --git a/vendor/github.com/gin-gonic/gin/binding/json.go b/vendor/github.com/gin-gonic/gin/binding/json.go
index 45aaa4948..d62e07059 100644
--- a/vendor/github.com/gin-gonic/gin/binding/json.go
+++ b/vendor/github.com/gin-gonic/gin/binding/json.go
@@ -6,7 +6,7 @@ package binding
import (
"bytes"
- "errors"
+ "fmt"
"io"
"net/http"
@@ -32,7 +32,7 @@ func (jsonBinding) Name() string {
func (jsonBinding) Bind(req *http.Request, obj interface{}) error {
if req == nil || req.Body == nil {
- return errors.New("invalid request")
+ return fmt.Errorf("invalid request")
}
return decodeJSON(req.Body, obj)
}
diff --git a/vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go b/vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go
index 69c0a5443..f85a1aa60 100644
--- a/vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go
+++ b/vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go
@@ -15,16 +15,8 @@ type multipartRequest http.Request
var _ setter = (*multipartRequest)(nil)
-var (
- // ErrMultiFileHeader multipart.FileHeader invalid
- ErrMultiFileHeader = errors.New("unsupported field type for multipart.FileHeader")
-
- // ErrMultiFileHeaderLenInvalid array for []*multipart.FileHeader len invalid
- ErrMultiFileHeaderLenInvalid = errors.New("unsupported len of array for []*multipart.FileHeader")
-)
-
// TrySet tries to set a value by the multipart request with the binding a form file
-func (r *multipartRequest) TrySet(value reflect.Value, field reflect.StructField, key string, opt setOptions) (bool, error) {
+func (r *multipartRequest) TrySet(value reflect.Value, field reflect.StructField, key string, opt setOptions) (isSetted bool, err error) {
if files := r.MultipartForm.File[key]; len(files) != 0 {
return setByMultipartFormFile(value, field, files)
}
@@ -57,12 +49,12 @@ func setByMultipartFormFile(value reflect.Value, field reflect.StructField, file
case reflect.Array:
return setArrayOfMultipartFormFiles(value, field, files)
}
- return false, ErrMultiFileHeader
+ return false, errors.New("unsupported field type for multipart.FileHeader")
}
func setArrayOfMultipartFormFiles(value reflect.Value, field reflect.StructField, files []*multipart.FileHeader) (isSetted bool, err error) {
if value.Len() != len(files) {
- return false, ErrMultiFileHeaderLenInvalid
+ return false, errors.New("unsupported len of array for []*multipart.FileHeader")
}
for i := range files {
setted, err := setByMultipartFormFile(value.Index(i), field, files[i:i+1])
diff --git a/vendor/github.com/gin-gonic/gin/binding/protobuf.go b/vendor/github.com/gin-gonic/gin/binding/protobuf.go
index a4e471535..f9ece928d 100644
--- a/vendor/github.com/gin-gonic/gin/binding/protobuf.go
+++ b/vendor/github.com/gin-gonic/gin/binding/protobuf.go
@@ -5,11 +5,10 @@
package binding
import (
- "errors"
"io/ioutil"
"net/http"
- "google.golang.org/protobuf/proto"
+ "github.com/golang/protobuf/proto"
)
type protobufBinding struct{}
@@ -27,11 +26,7 @@ func (b protobufBinding) Bind(req *http.Request, obj interface{}) error {
}
func (protobufBinding) BindBody(body []byte, obj interface{}) error {
- msg, ok := obj.(proto.Message)
- if !ok {
- return errors.New("obj is not ProtoMessage")
- }
- if err := proto.Unmarshal(body, msg); err != nil {
+ if err := proto.Unmarshal(body, obj.(proto.Message)); err != nil {
return err
}
// Here it's same to return validate(obj), but util now we can't add
diff --git a/vendor/github.com/gin-gonic/gin/binding/uri.go b/vendor/github.com/gin-gonic/gin/binding/uri.go
index a3c0df515..f91ec3819 100644
--- a/vendor/github.com/gin-gonic/gin/binding/uri.go
+++ b/vendor/github.com/gin-gonic/gin/binding/uri.go
@@ -11,7 +11,7 @@ func (uriBinding) Name() string {
}
func (uriBinding) BindUri(m map[string][]string, obj interface{}) error {
- if err := mapURI(obj, m); err != nil {
+ if err := mapUri(obj, m); err != nil {
return err
}
return validate(obj)