feat(handlers/comment): use slogger #10

merged
opened by brookjeynes.dev targeting master from push-trrpxxyxxmot
Changed files
+36 -27
internal
server
handlers
+36 -27
internal/server/handlers/comment.go
···
package handlers
import (
-
"log"
"net/http"
"strings"
"time"
···
)
func (h *Handler) HandleNewComment(w http.ResponseWriter, r *http.Request) {
+
l := h.Logger.With("handler", "HandleNewComment")
+
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
}
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
}
profile, err := db.GetProfile(h.Db, user.Did)
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
}
err = r.ParseForm()
if err != nil {
-
log.Println("invalid comment form:", err)
+
l.Error("invalid comment form", "err", err)
htmx.HxError(w, http.StatusBadRequest, "Unable to process comment, please try again later.")
return
}
commentBody := r.FormValue("comment")
if len(strings.TrimSpace(commentBody)) == 0 {
-
log.Println("invalid comment form: missing comment body")
+
l.Error("invalid comment form: missing comment body")
htmx.HxError(w, http.StatusBadRequest, "Comment cannot be empty.")
return
}
studySessionUri := r.FormValue("study_session_uri")
if len(studySessionUri) == 0 {
-
log.Println("invalid comment form: missing study session Uri")
+
l.Error("invalid comment form: missing study session Uri")
htmx.HxError(w, http.StatusBadRequest, "Unable to create comment, please try again later.")
return
}
···
},
})
if err != nil {
-
log.Println("failed to create comment record:", err)
+
l.Error("failed to create comment record", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to create comment, try again later.")
return
}
···
err = h.Posthog.Enqueue(event)
if err != nil {
-
log.Println("failed to enqueue posthog event:", err)
+
l.Error("failed to enqueue posthog event", "err", err)
}
}
···
}
func (h *Handler) HandleDeleteComment(w http.ResponseWriter, r *http.Request) {
+
l := h.Logger.With("handler", "HandleDeleteComment")
+
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.HxRedirect(w, "/login")
return
}
···
rkey := chi.URLParam(r, "rkey")
comment, err := db.GetCommentByRkey(h.Db, user.Did, rkey)
if err != nil {
-
log.Println("failed to get comment from db:", err)
+
l.Error("failed to get comment from db", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to delete comment, try again later.")
return
}
if user.Did != comment.Did {
-
log.Printf("user '%s' does not own record '%s'", user.Did, rkey)
+
l.Error("user does not own record", "did", user.Did, "commentDid", comment.Did)
htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to delete this comment.")
return
}
···
Rkey: comment.Rkey,
})
if err != nil {
-
log.Println("failed to delete comment from PDS:", err)
+
l.Error("failed to delete comment from PDS", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to delete comment, try again later.")
return
}
···
err = h.Posthog.Enqueue(event)
if err != nil {
-
log.Println("failed to enqueue posthog event:", err)
+
l.Error("failed to enqueue posthog event", "err", err)
}
}
···
}
func (h *Handler) HandleEditCommentPage(w http.ResponseWriter, r *http.Request) {
+
l := h.Logger.With("handler", "HandleEditCommentPage")
+
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
}
···
rkey := chi.URLParam(r, "rkey")
comment, err := db.GetCommentByRkey(h.Db, user.Did, rkey)
if err != nil {
-
log.Println("failed to get comment from db:", err)
+
l.Error("failed to get comment from db", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to update comment, try again later.")
return
}
if user.Did != comment.Did {
-
log.Printf("user '%s' does not own record '%s'", user.Did, rkey)
+
l.Error("user does not own record", "did", user.Did, "commentDid", comment.Did)
htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to edit this comment.")
return
}
···
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
}
err = r.ParseForm()
if err != nil {
-
log.Println("invalid comment form:", err)
+
l.Error("invalid comment form", "err", err)
htmx.HxError(w, http.StatusBadRequest, "Unable to process comment, please try again later.")
return
}
commentBody := r.FormValue("comment")
if len(strings.TrimSpace(commentBody)) == 0 {
-
log.Println("invalid comment form: missing comment body")
+
l.Error("invalid comment form: missing comment body")
htmx.HxError(w, http.StatusBadRequest, "Comment cannot be empty.")
return
}
···
SwapRecord: cid,
})
if err != nil {
-
log.Println("failed to update study session record:", err)
+
l.Error("failed to update study session record", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to update comment, try again later.")
return
}
···
err = h.Posthog.Enqueue(event)
if err != nil {
-
log.Println("failed to enqueue posthog event:", err)
+
l.Error("failed to enqueue posthog event", "err", err)
}
}
···
}
func (h *Handler) HandleReply(w http.ResponseWriter, r *http.Request) {
+
l := h.Logger.With("handler", "HandleReply")
+
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
}
···
studySessionUri := r.URL.Query().Get("root")
parentCommentUri := r.URL.Query().Get("parent")
if len(studySessionUri) == 0 || len(parentCommentUri) == 0 {
-
log.Println("invalid reply form: study session uri or parent comment uri is empty")
+
l.Error("invalid reply form: study session uri or parent comment uri is empty")
htmx.HxError(w, http.StatusBadRequest, "Unable to process comment, please try again later.")
return
}
···
}
func (h *Handler) HandleCancelCommentEdit(w http.ResponseWriter, r *http.Request) {
+
l := h.Logger.With("handler", "HandleCancelCommentEdit")
+
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
}
···
rkey := chi.URLParam(r, "rkey")
comment, err := db.GetCommentByRkey(h.Db, user.Did, rkey)
if err != nil {
-
log.Println("failed to get comment from db:", err)
+
l.Error("failed to get comment from db", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to update comment, try again later.")
return
}