From ee751d178e3b66f43d93772413ac12ea013427e1 Mon Sep 17 00:00:00 2001 From: brookjeynes Date: Wed, 15 Oct 2025 08:37:43 +1000 Subject: [PATCH] feat(handlers/resource): use slogger Change-Id: lkqonxosrvnsvmzxpkoyysslvumrkpyy Signed-off-by: brookjeynes --- internal/server/handlers/resource.go | 57 +++++++++++++++------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/internal/server/handlers/resource.go b/internal/server/handlers/resource.go index f6935c7..dc92694 100644 --- a/internal/server/handlers/resource.go +++ b/internal/server/handlers/resource.go @@ -3,7 +3,6 @@ package handlers import ( "errors" "fmt" - "log" "net/http" "time" @@ -63,9 +62,11 @@ func parseResourceForm(r *http.Request) (db.Resource, error) { } func (h *Handler) HandleNewResourcePage(w http.ResponseWriter, r *http.Request) { + l := h.Logger.With("handler", "HandleNewResourcePage") + user, err := bsky.GetUserWithBskyProfile(h.Oauth, r) if err != nil { - log.Println("failed to get logged-in user:", err) + l.Error("failed to get logged-in user", "err", err) htmx.HxRedirect(w, "/login") return } @@ -79,14 +80,14 @@ func (h *Handler) HandleNewResourcePage(w http.ResponseWriter, r *http.Request) case http.MethodPost: client, err := h.Oauth.AuthorizedClient(r) if err != nil { - log.Println("failed to get authorized client:", err) + l.Error("failed to get authorized client", "err", err) htmx.HxRedirect(w, "/login") return } newResource, err := parseResourceForm(r) if err != nil { - log.Println("invalid resource form:", err) + l.Error("invalid resource form", "err", err) htmx.HxError(w, http.StatusBadRequest, "Failed to create resource, ensure all fields contain valid data.") return } @@ -95,7 +96,7 @@ func (h *Handler) HandleNewResourcePage(w http.ResponseWriter, r *http.Request) newResource.CreatedAt = time.Now().UTC() if err := db.ValidateResource(newResource); err != nil { - log.Println("invalid resource definition:", err) + l.Error("invalid resource definition", "err", err) switch { case errors.Is(err, db.ErrResourceTitleEmpty): htmx.HxError(w, http.StatusBadRequest, "Resource must have a title.") @@ -118,7 +119,7 @@ func (h *Handler) HandleNewResourcePage(w http.ResponseWriter, r *http.Request) if newResource.Link != nil { linkCheckResult := google.CheckResourceLinkSafety(*newResource.Link) if linkCheckResult.Err != nil { - log.Println("invalid resource definition:", linkCheckResult.Err) + l.Error("invalid resource definition", "err", linkCheckResult.Err) switch { case errors.Is(linkCheckResult.Err, google.ErrResourceLinkSketchy): if !h.Config.Core.Dev { @@ -186,14 +187,14 @@ func (h *Handler) HandleNewResourcePage(w http.ResponseWriter, r *http.Request) }, }) if err != nil { - log.Println("failed to create resource record:", err) + l.Error("failed to create resource record", "err", err) htmx.HxError(w, http.StatusInternalServerError, "Failed to create resource, try again later.") return } err = SavePendingCreate(h, w, r, PendingResourceCreation, newResource) if err != nil { - log.Printf("failed to save yoten-session to add pending resource creation: %v", err) + l.Error("failed to save yoten-session to add pending resource creation", "err", err) } if !h.Config.Core.Dev { @@ -209,7 +210,7 @@ func (h *Handler) HandleNewResourcePage(w http.ResponseWriter, r *http.Request) Set("link_provided", newResource.Link != nil), }) if err != nil { - log.Println("failed to enqueue posthog event:", err) + l.Error("failed to enqueue posthog event", "err", err) } } @@ -218,15 +219,17 @@ func (h *Handler) HandleNewResourcePage(w http.ResponseWriter, r *http.Request) } func (h *Handler) HandleDeleteResource(w http.ResponseWriter, r *http.Request) { + l := h.Logger.With("handler", "HandleDeleteResource") + user := h.Oauth.GetUser(r) if user == nil { - log.Println("failed to get logged-in user") + l.Error("failed to get logged-in user") htmx.HxRedirect(w, "/login") return } client, err := h.Oauth.AuthorizedClient(r) if err != nil { - log.Println("failed to get authorized client:", err) + l.Error("failed to get authorized client", "err", err) htmx.HxError(w, http.StatusUnauthorized, "Failed to delete resource, try again later.") return } @@ -236,13 +239,13 @@ func (h *Handler) HandleDeleteResource(w http.ResponseWriter, r *http.Request) { rkey := chi.URLParam(r, "rkey") resource, err := db.GetResourceByRkey(h.Db, user.Did, rkey) if err != nil { - log.Println("failed to get resource from db:", err) + l.Error("failed to get resource from db", "err", err) htmx.HxError(w, http.StatusInternalServerError, "Failed to delete resource, try again later.") return } if user.Did != resource.Did { - log.Printf("user '%s' does not own record '%s'", user.Did, rkey) + l.Error("user does not own record", "did", user.Did, "resourceDid", resource.Did) htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to delete this resource.") return } @@ -253,14 +256,14 @@ func (h *Handler) HandleDeleteResource(w http.ResponseWriter, r *http.Request) { Rkey: resource.Rkey, }) if err != nil { - log.Println("failed to delete resource from PDS:", err) + l.Error("failed to delete resource from PDS", "err", err) htmx.HxError(w, http.StatusInternalServerError, "Failed to delete resource, try again later.") return } err = SavePendingDelete(h, w, r, PendingResourceDeletion, resource) if err != nil { - log.Printf("failed to save yoten-session to add pending resource deletion: %v", err) + l.Error("failed to save yoten-session to add pending resource deletion", "err", err) } if !h.Config.Core.Dev { @@ -272,7 +275,7 @@ func (h *Handler) HandleDeleteResource(w http.ResponseWriter, r *http.Request) { Set("resource_type", resource.Type), }) if err != nil { - log.Println("failed to enqueue posthog event:", err) + l.Error("failed to enqueue posthog event", "err", err) } } @@ -281,9 +284,11 @@ func (h *Handler) HandleDeleteResource(w http.ResponseWriter, r *http.Request) { } func (h *Handler) HandleEditResourcePage(w http.ResponseWriter, r *http.Request) { + l := h.Logger.With("handler", "HandleEditResourcePage") + user, err := bsky.GetUserWithBskyProfile(h.Oauth, r) if err != nil { - log.Println("failed to get logged-in user:", err) + l.Error("failed to get logged-in user", "err", err) htmx.HxRedirect(w, "/login") return } @@ -291,13 +296,13 @@ func (h *Handler) HandleEditResourcePage(w http.ResponseWriter, r *http.Request) rkey := chi.URLParam(r, "rkey") resource, err := db.GetResourceByRkey(h.Db, user.Did, rkey) if err != nil { - log.Println("failed to get resource from db:", err) + l.Error("failed to get resource from db", "err", err) htmx.HxError(w, http.StatusInternalServerError, "Failed to update resource, try again later.") return } if user.Did != resource.Did { - log.Printf("user '%s' does not own record '%s'", user.Did, rkey) + l.Error("user does not own record", "did", user.Did, "resourceDid", resource.Did) htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to edit this resource.") return } @@ -312,14 +317,14 @@ func (h *Handler) HandleEditResourcePage(w http.ResponseWriter, r *http.Request) case http.MethodPost: client, err := h.Oauth.AuthorizedClient(r) if err != nil { - log.Println("failed to get authorized client:", err) + l.Error("failed to get authorized client", "err", err) htmx.HxRedirect(w, "/login") return } updatedResource, err := parseResourceForm(r) if err != nil { - log.Println("invalid resource form:", err) + l.Error("invalid resource form", "err", err) htmx.HxError(w, http.StatusBadRequest, "Failed to create resource, ensure all fields contain valid data.") return } @@ -328,7 +333,7 @@ func (h *Handler) HandleEditResourcePage(w http.ResponseWriter, r *http.Request) updatedResource.CreatedAt = resource.CreatedAt if err := db.ValidateResource(updatedResource); err != nil { - log.Println("invalid resource definition:", err) + l.Error("invalid resource definition", "err", err) switch { case errors.Is(err, db.ErrResourceTitleEmpty): htmx.HxError(w, http.StatusBadRequest, "Resource must have a title.") @@ -352,7 +357,7 @@ func (h *Handler) HandleEditResourcePage(w http.ResponseWriter, r *http.Request) if updatedResource.Link != nil && (resource.Link == nil || *updatedResource.Link != *resource.Link) { linkCheckResult := google.CheckResourceLinkSafety(*updatedResource.Link) if linkCheckResult.Err != nil { - log.Println("invalid resource definition:", linkCheckResult.Err) + l.Error("invalid resource link", "link", resource.Link, "threatType", linkCheckResult.ThreatType, "err", linkCheckResult.Err) switch { case errors.Is(linkCheckResult.Err, google.ErrResourceLinkSketchy): if !h.Config.Core.Dev { @@ -427,14 +432,14 @@ func (h *Handler) HandleEditResourcePage(w http.ResponseWriter, r *http.Request) SwapRecord: cid, }) if err != nil { - log.Println("failed to update resource record:", err) + l.Error("failed to update resource record", "err", err) htmx.HxError(w, http.StatusInternalServerError, "Failed to update resource, try again later.") return } err = SavePendingUpdate(h, w, r, PendingResourceUpdates, updatedResource) if err != nil { - log.Printf("failed to save yoten-session to add pending resource updates: %v", err) + l.Error("failed to save yoten-session to add pending resource updates", "err", err) } if !h.Config.Core.Dev { @@ -450,7 +455,7 @@ func (h *Handler) HandleEditResourcePage(w http.ResponseWriter, r *http.Request) Set("link_provided", updatedResource.Link != nil), }) if err != nil { - log.Println("failed to enqueue posthog event:", err) + l.Error("failed to enqueue posthog event", "err", err) } } -- 2.43.0