From f1fad7e4e33e8f8e030413b6a5916bc06278e301 Mon Sep 17 00:00:00 2001 From: Maximilian Date: Mon, 31 Jul 2023 18:37:54 -0500 Subject: [PATCH] Pass in handler to middleware, create definition for MiddlewareFunc --- middleware/groups.go | 5 +++++ middleware/wrapper.go | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 middleware/groups.go diff --git a/middleware/groups.go b/middleware/groups.go new file mode 100644 index 0000000..0bb20a4 --- /dev/null +++ b/middleware/groups.go @@ -0,0 +1,5 @@ +package middleware + +import "net/http" + +type MiddlewareFunc func(f func(w http.ResponseWriter, r *http.Request)) func(w http.ResponseWriter, r *http.Request) diff --git a/middleware/wrapper.go b/middleware/wrapper.go index b75ab6b..ce0d4e6 100644 --- a/middleware/wrapper.go +++ b/middleware/wrapper.go @@ -5,9 +5,9 @@ import "net/http" // ProcessGroup is a wrapper function for the http.HandleFunc function // that takes the function you want to execute (f) and the middleware you want // to execute (m) this should be used when processing multiple groups of middleware at a time -func ProcessGroup(f func(w http.ResponseWriter, r *http.Request), m []func()) func(w http.ResponseWriter, r *http.Request) { +func ProcessGroup(f func(w http.ResponseWriter, r *http.Request), m []MiddlewareFunc) func(w http.ResponseWriter, r *http.Request) { for _, middleware := range m { - middleware() + _ = middleware(f) } return f