mirror of
https://github.com/foomo/keel.git
synced 2025-10-16 12:35:34 +00:00
21 lines
498 B
Go
21 lines
498 B
Go
package middleware
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// Middleware your way to handle requests
|
|
type Middleware func(*zap.Logger, string, http.Handler) http.Handler
|
|
|
|
func Compose(l *zap.Logger, name string, handler http.Handler, middlewares ...Middleware) http.Handler {
|
|
composed := func(l *zap.Logger, name string, next http.Handler) http.Handler {
|
|
for _, middleware := range middlewares {
|
|
next = middleware(l, name, next)
|
|
}
|
|
return next
|
|
}
|
|
return composed(l, name, handler)
|
|
}
|