package websvc import ( "net/http" "time" "github.com/AdguardTeam/AdGuardHome/internal/aghhttp" "github.com/AdguardTeam/golibs/httphdr" "github.com/AdguardTeam/golibs/log" ) // Middlewares // jsonMw sets the content type of the response to application/json. func jsonMw(h http.Handler) (wrapped http.HandlerFunc) { f := func(w http.ResponseWriter, r *http.Request) { w.Header().Set(httphdr.ContentType, aghhttp.HdrValApplicationJSON) h.ServeHTTP(w, r) } return http.HandlerFunc(f) } // logMw logs the queries with level debug. func logMw(h http.Handler) (wrapped http.HandlerFunc) { f := func(w http.ResponseWriter, r *http.Request) { start := time.Now() m, u := r.Method, r.RequestURI log.Debug("websvc: %s %s started", m, u) defer func() { log.Debug("websvc: %s %s finished in %s", m, u, time.Since(start)) }() h.ServeHTTP(w, r) } return http.HandlerFunc(f) }