separated logger middleware

This commit is contained in:
2026-01-11 17:05:20 -07:00
parent 9de51c3925
commit 85ccace24f
5 changed files with 124 additions and 84 deletions
+5 -1
View File
@@ -4,7 +4,11 @@ import (
"net/http"
)
type HandlerFunc = func(r *http.Request) (Response, error)
type (
HandlerFunc = func(r *http.Request) (Response, error)
Middleware = func(HandlerFunc) HandlerFunc
)
func Handler(f HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
-34
View File
@@ -1,34 +0,0 @@
package response
import "net/http"
type (
Mux struct {
Mux *http.ServeMux
middleware []Middleware
}
Middleware = func(HandlerFunc) HandlerFunc
)
func NewMux(ms ...Middleware) *Mux {
return &Mux{
Mux: http.NewServeMux(),
middleware: ms,
}
}
func (m *Mux) Handle(pattern string, fn HandlerFunc) {
for _, mw := range m.middleware {
prev := fn
fn = mw(func(r *http.Request) (Response, error) {
return prev(r)
})
}
m.Mux.Handle(pattern, Handler(fn))
}
func (m *Mux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
m.Mux.ServeHTTP(w, r)
}