diff options
Diffstat (limited to 'vendor/github.com/go-zoo/bone/helper_17.go')
-rw-r--r-- | vendor/github.com/go-zoo/bone/helper_17.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/github.com/go-zoo/bone/helper_17.go b/vendor/github.com/go-zoo/bone/helper_17.go new file mode 100644 index 000000000..2e41ea4be --- /dev/null +++ b/vendor/github.com/go-zoo/bone/helper_17.go @@ -0,0 +1,39 @@ +// +build go1.7 + +/******************************** +*** Multiplexer for Go *** +*** Bone is under MIT license *** +*** Code by CodingFerret *** +*** github.com/go-zoo *** +*********************************/ + +package bone + +import ( + "context" + "net/http" +) + +// contextKeyType is a private struct that is used for storing bone values in net.Context +type contextKeyType struct{} + +// contextKey is the key that is used to store bone values in the net.Context for each request +var contextKey = contextKeyType{} + +// GetAllValues return the req PARAMs +func GetAllValues(req *http.Request) map[string]string { + values, ok := req.Context().Value(contextKey).(map[string]string) + if ok { + return values + } + + return map[string]string{} +} + +// serveMatchedRequest is an extension point for Route which allows us to conditionally compile for +// go1.7 and <go1.7 +func (r *Route) serveMatchedRequest(rw http.ResponseWriter, req *http.Request, vars map[string]string) { + ctx := context.WithValue(req.Context(), contextKey, vars) + newReq := req.WithContext(ctx) + r.Handler.ServeHTTP(rw, newReq) +} |