mirror of
https://github.com/adnanh/webhook.git
synced 2025-05-16 02:20:17 +00:00
* Update go-chi dependency to v5 * Update gofrs/uuid dependency to v5 * Update gorilla/mux dependency to v1.8.1 * Update go-humanize dependency to v1.0.1 * Update mxj dependency to v2.7.0 * Update fsnotify dependency to v1.7.0 * Update Go versions in GH build workflow * Update gopkg.in/yaml.v2 indirect dependency to v2.4.0 * Bump GH actions
18 lines
636 B
Go
18 lines
636 B
Go
package middleware
|
|
|
|
import "net/http"
|
|
|
|
// Maybe middleware will allow you to change the flow of the middleware stack execution depending on return
|
|
// value of maybeFn(request). This is useful for example if you'd like to skip a middleware handler if
|
|
// a request does not satisfy the maybeFn logic.
|
|
func Maybe(mw func(http.Handler) http.Handler, maybeFn func(r *http.Request) bool) func(http.Handler) http.Handler {
|
|
return func(next http.Handler) http.Handler {
|
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
if maybeFn(r) {
|
|
mw(next).ServeHTTP(w, r)
|
|
} else {
|
|
next.ServeHTTP(w, r)
|
|
}
|
|
})
|
|
}
|
|
}
|