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
+36
View File
@@ -0,0 +1,36 @@
package router
import (
"net/http"
"ruben/inventory2/internal/server/response"
)
type (
Mux struct {
Mux *http.ServeMux
middleware []response.Middleware
}
)
func NewMux(ms ...response.Middleware) *Mux {
return &Mux{
Mux: http.NewServeMux(),
middleware: ms,
}
}
func (m *Mux) Handle(pattern string, fn response.HandlerFunc) {
for _, mw := range m.middleware {
prev := fn
fn = mw(func(r *http.Request) (response.Response, error) {
return prev(r)
})
}
m.Mux.Handle(pattern, response.Handler(fn))
}
func (m *Mux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
m.Mux.ServeHTTP(w, r)
}