summaryrefslogtreecommitdiff
path: root/src/http/middleware.go
diff options
context:
space:
mode:
authorBrian Picciano <mediocregopher@gmail.com>2024-05-26 22:06:44 +0200
committerBrian Picciano <mediocregopher@gmail.com>2024-05-26 22:06:44 +0200
commitfaa296075f5ea2d8e01004b46b036997f9529d99 (patch)
tree5d5e2cb693302dd7239aa02a183d2b0efff242c2 /src/http/middleware.go
parent006c0028106425abb3f718b2e86349dee5b7a2ea (diff)
Clean out Get/SetRequestLogger from apiutil
Diffstat (limited to 'src/http/middleware.go')
-rw-r--r--src/http/middleware.go58
1 files changed, 30 insertions, 28 deletions
diff --git a/src/http/middleware.go b/src/http/middleware.go
index 7a34e83..d8f2e6e 100644
--- a/src/http/middleware.go
+++ b/src/http/middleware.go
@@ -10,7 +10,6 @@ import (
"time"
"dev.mediocregopher.com/mediocre-blog.git/src/cache"
- "dev.mediocregopher.com/mediocre-blog.git/src/http/apiutil"
"dev.mediocregopher.com/mediocre-go-lib.git/mctx"
"dev.mediocregopher.com/mediocre-go-lib.git/mlog"
)
@@ -35,7 +34,7 @@ func addResponseHeadersMiddleware(headers map[string]string) middleware {
}
}
-func setLoggerMiddleware(logger *mlog.Logger) middleware {
+func setLogCtxMiddleware() middleware {
return func(h http.Handler) http.Handler {
return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
@@ -60,7 +59,6 @@ func setLoggerMiddleware(logger *mlog.Logger) middleware {
}
r = r.WithContext(ctx)
- r = apiutil.SetRequestLogger(r, logger)
h.ServeHTTP(rw, r)
})
}
@@ -86,40 +84,44 @@ func (rw *wrappedResponseWriter) WriteHeader(statusCode int) {
rw.ResponseWriter.WriteHeader(statusCode)
}
-func logReqMiddleware(h http.Handler) http.Handler {
+func logReqMiddleware(logger *mlog.Logger) func(h http.Handler) http.Handler {
type logCtxKey string
- return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
+ return func(h http.Handler) http.Handler {
+ return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
- wrw := newWrappedResponseWriter(rw)
+ wrw := newWrappedResponseWriter(rw)
- started := time.Now()
- h.ServeHTTP(wrw, r)
- took := time.Since(started)
+ started := time.Now()
+ h.ServeHTTP(wrw, r)
+ took := time.Since(started)
- ctx := r.Context()
- ctx = mctx.Annotate(ctx,
- logCtxKey("took"), took.String(),
- logCtxKey("response_code"), wrw.statusCode,
- )
+ ctx := r.Context()
+ ctx = mctx.Annotate(ctx,
+ logCtxKey("took"), took.String(),
+ logCtxKey("response_code"), wrw.statusCode,
+ )
- apiutil.GetRequestLogger(r).Info(ctx, "handled HTTP request")
- })
+ logger.Info(ctx, "handled HTTP request")
+ })
+ }
}
-func disallowGetMiddleware(h http.Handler) http.Handler {
- return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
+func disallowGetMiddleware(logger *mlog.Logger) func(h http.Handler) http.Handler {
+ return func(h http.Handler) http.Handler {
+ return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
- // we allow websockets to be GETs because, well, they must be
- if r.Method != "GET" || r.Header.Get("Upgrade") == "websocket" {
- h.ServeHTTP(rw, r)
- return
- }
+ // we allow websockets to be GETs because, well, they must be
+ if r.Method != "GET" || r.Header.Get("Upgrade") == "websocket" {
+ h.ServeHTTP(rw, r)
+ return
+ }
- apiutil.GetRequestLogger(r).WarnString(r.Context(), "method not allowed")
- rw.WriteHeader(405)
- })
+ logger.WarnString(r.Context(), "method not allowed")
+ rw.WriteHeader(405)
+ })
+ }
}
type cacheResponseWriter struct {
@@ -188,7 +190,7 @@ func cacheMiddleware(cache cache.Cache, publicURL *url.URL) middleware {
}
}
-func purgeCacheOnOKMiddleware(cache cache.Cache) middleware {
+func purgeCacheOnOKMiddleware(logger *mlog.Logger, cache cache.Cache) middleware {
return func(h http.Handler) http.Handler {
return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
@@ -196,7 +198,7 @@ func purgeCacheOnOKMiddleware(cache cache.Cache) middleware {
h.ServeHTTP(wrw, r)
if wrw.statusCode == 200 {
- apiutil.GetRequestLogger(r).Info(r.Context(), "purging cache!")
+ logger.Info(r.Context(), "purging cache!")
cache.Purge()
}
})