Explorar o código

Adds Bind() middleware

Manu Mtz-Almeida %!s(int64=10) %!d(string=hai) anos
pai
achega
ab447bb188
Modificáronse 1 ficheiros con 12 adicións e 0 borrados
  1. 12 0
      utils.go

+ 12 - 0
utils.go

@@ -13,6 +13,18 @@ import (
 	"strings"
 )
 
+const BindKey = "_gin-gonic/gin/bindkey"
+
+func Bind(val interface{}) HandlerFunc {
+	typ := reflect.ValueOf(val).Type()
+	return func(c *Context) {
+		obj := reflect.New(typ).Interface()
+		if c.Bind(obj) == nil {
+			c.Set(BindKey, obj)
+		}
+	}
+}
+
 func WrapF(f http.HandlerFunc) HandlerFunc {
 	return func(c *Context) {
 		f(c.Writer, c.Request)