Files
extrovert/internals/middleware.go
Gustavo "Guz" L. de Mello 2686a045fd chore: initial setup
2024-06-24 11:50:06 -03:00

35 lines
639 B
Go

package internals
import (
"log"
"net/http"
)
type Middleware struct {
handler http.Handler
dev bool
noCache bool
logger *log.Logger
}
func (m *Middleware) ServeHTTP(w http.ResponseWriter, r *http.Request) {
m.logger.Printf("Handling request. path=%s", r.URL.Path)
if m.dev {
r.URL.Scheme = "http"
} else {
r.URL.Scheme = "https"
}
m.handler.ServeHTTP(w, r)
if m.noCache {
w.Header().Del("Cache-Control")
w.Header().Add("Cache-Control", "max-age=0")
}
}
func NewMiddleware(handler http.Handler, dev bool, noCache bool, logger *log.Logger) *Middleware {
return &Middleware{handler, dev, noCache, logger}
}