From 254ae6865f928942eee75d7145d30782e7825e63 Mon Sep 17 00:00:00 2001 From: brookjeynes Date: Wed, 15 Oct 2025 14:16:16 +1000 Subject: [PATCH] feat(middleware): use slogger Change-Id: ontulmlvxkxnuonzqtoyszlywzvppzyr Signed-off-by: brookjeynes --- internal/server/handlers/router.go | 2 ++ internal/server/middleware/middleware.go | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/internal/server/handlers/router.go b/internal/server/handlers/router.go index d4f46e0..cf2636b 100644 --- a/internal/server/handlers/router.go +++ b/internal/server/handlers/router.go @@ -7,6 +7,7 @@ import ( "github.com/go-chi/chi/v5" "yoten.app/internal/server" + "yoten.app/internal/server/log" "yoten.app/internal/server/middleware" "yoten.app/internal/server/views" ) @@ -25,6 +26,7 @@ func (h *Handler) Router() http.Handler { h.Oauth, h.Db, h.IdResolver, + log.SubLogger(h.Logger, "middleware"), ) router.HandleFunc("/*", func(w http.ResponseWriter, r *http.Request) { diff --git a/internal/server/middleware/middleware.go b/internal/server/middleware/middleware.go index b029f38..58e85fb 100644 --- a/internal/server/middleware/middleware.go +++ b/internal/server/middleware/middleware.go @@ -3,7 +3,7 @@ package middleware import ( "context" "fmt" - "log" + "log/slog" "net/http" "net/url" "slices" @@ -25,19 +25,23 @@ type Middleware struct { oauth *oauth.OAuth db *db.DB idResolver *atproto.Resolver + logger *slog.Logger } -func New(oauth *oauth.OAuth, db *db.DB, idResolver *atproto.Resolver) Middleware { +func New(oauth *oauth.OAuth, db *db.DB, idResolver *atproto.Resolver, logger *slog.Logger) Middleware { return Middleware{ oauth: oauth, db: db, idResolver: idResolver, + logger: logger, } } type middlewareFunc func(http.Handler) http.Handler func AuthMiddleware(o *oauth.OAuth) middlewareFunc { + l := o.Logger.With("middleware", "AuthMiddleware") + return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { returnURL := "/" @@ -59,13 +63,13 @@ func AuthMiddleware(o *oauth.OAuth) middlewareFunc { sess, err := o.ResumeSession(r) if err != nil { - log.Println("failed to resume session, redirecting...", "err", err, "url", r.URL.String()) + l.Error("failed to resume session, redirecting...", "err", err, "url", r.URL.String()) redirectFunc(w, r) return } if sess == nil { - log.Printf("session is nil, redirecting...") + l.Warn("session is nil, redirecting...") redirectFunc(w, r) return } @@ -76,6 +80,7 @@ func AuthMiddleware(o *oauth.OAuth) middlewareFunc { } func (mw Middleware) ResolveIdent() middlewareFunc { + l := mw.logger.With("middleware", "ResolveIdent") excluded := []string{"favicon.ico"} return func(next http.Handler) http.Handler { @@ -90,7 +95,7 @@ func (mw Middleware) ResolveIdent() middlewareFunc { id, err := mw.idResolver.ResolveIdent(r.Context(), didOrHandle) if err != nil { - log.Println("failed to resolve did/handle:", err) + l.Error("failed to resolve did/handle", "err", err) w.WriteHeader(http.StatusNotFound) views.NotFoundPage(views.NotFoundPageParams{}).Render(r.Context(), w) return @@ -104,6 +109,8 @@ func (mw Middleware) ResolveIdent() middlewareFunc { } func (mw Middleware) LoadUnreadNotificationCount() middlewareFunc { + l := mw.logger.With("middleware", "LoadUnreadNotificationCount") + return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { user := mw.oauth.GetUser(r) @@ -114,7 +121,7 @@ func (mw Middleware) LoadUnreadNotificationCount() middlewareFunc { count, err := db.GetUnreadNotificationCount(mw.db, user.Did) if err != nil { - log.Println("failed to get notification count:", err) + l.Error("failed to get notification count", "err", err) } ctx := context.WithValue(r.Context(), UnreadNotificationCountCtxKey, count) -- 2.43.0