summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/labstack/echo/middleware/request_id.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2017-06-06 00:01:05 +0200
committerWim <wim@42.be>2017-06-06 00:04:18 +0200
commit3a183cb218c6812964a70d2e75884ad7071d9c0c (patch)
treeee0d2492c27e84ace88acfcfdc533545f42ccb21 /vendor/github.com/labstack/echo/middleware/request_id.go
parent2eecaccd1c77e8990a80e6b4b6ad6b13a9c95896 (diff)
downloadmatterbridge-msglm-3a183cb218c6812964a70d2e75884ad7071d9c0c.tar.gz
matterbridge-msglm-3a183cb218c6812964a70d2e75884ad7071d9c0c.tar.bz2
matterbridge-msglm-3a183cb218c6812964a70d2e75884ad7071d9c0c.zip
Update vendor
Diffstat (limited to 'vendor/github.com/labstack/echo/middleware/request_id.go')
-rw-r--r--vendor/github.com/labstack/echo/middleware/request_id.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/github.com/labstack/echo/middleware/request_id.go b/vendor/github.com/labstack/echo/middleware/request_id.go
new file mode 100644
index 00000000..f376c296
--- /dev/null
+++ b/vendor/github.com/labstack/echo/middleware/request_id.go
@@ -0,0 +1,64 @@
+package middleware
+
+import (
+ "github.com/labstack/echo"
+ "github.com/labstack/gommon/random"
+)
+
+type (
+ // RequestIDConfig defines the config for RequestID middleware.
+ RequestIDConfig struct {
+ // Skipper defines a function to skip middleware.
+ Skipper Skipper
+
+ // Generator defines a function to generate an ID.
+ // Optional. Default value random.String(32).
+ Generator func() string
+ }
+)
+
+var (
+ // DefaultRequestIDConfig is the default RequestID middleware config.
+ DefaultRequestIDConfig = RequestIDConfig{
+ Skipper: DefaultSkipper,
+ Generator: generator,
+ }
+)
+
+// RequestID returns a X-Request-ID middleware.
+func RequestID() echo.MiddlewareFunc {
+ return RequestIDWithConfig(DefaultRequestIDConfig)
+}
+
+// RequestIDWithConfig returns a X-Request-ID middleware with config.
+func RequestIDWithConfig(config RequestIDConfig) echo.MiddlewareFunc {
+ // Defaults
+ if config.Skipper == nil {
+ config.Skipper = DefaultRequestIDConfig.Skipper
+ }
+ if config.Generator == nil {
+ config.Generator = generator
+ }
+
+ return func(next echo.HandlerFunc) echo.HandlerFunc {
+ return func(c echo.Context) error {
+ if config.Skipper(c) {
+ return next(c)
+ }
+
+ req := c.Request()
+ res := c.Response()
+ rid := req.Header.Get(echo.HeaderXRequestID)
+ if rid == "" {
+ rid = config.Generator()
+ }
+ res.Header().Set(echo.HeaderXRequestID, rid)
+
+ return next(c)
+ }
+ }
+}
+
+func generator() string {
+ return random.String(32)
+}