Y艒ten: A social tracker for your language learning journey built on the atproto.

feat(handlers/reaction): use slogger #16

merged opened by brookjeynes.dev targeting master from push-trrpxxyxxmot
Labels

None yet.

Participants 1
AT URI
at://did:plc:4mj54vc4ha3lh32ksxwunnbh/sh.tangled.repo.pull/3m3bmdlgblw22
+17 -17
Diff #0
+17 -17
internal/server/handlers/reaction.go
··· 1 package handlers 2 3 import ( 4 - "log" 5 "net/http" 6 "slices" 7 "strconv" ··· 21 ) 22 23 func (h *Handler) HandleReaction(w http.ResponseWriter, r *http.Request) { 24 client, err := h.Oauth.AuthorizedClient(r) 25 if err != nil { 26 - log.Println("failed to get authorized client:", err) 27 htmx.HxRedirect(w, "/login") 28 return 29 } 30 31 user, err := bsky.GetUserWithBskyProfile(h.Oauth, r) 32 if err != nil { 33 - log.Println("failed to get logged-in user:", err) 34 htmx.HxRedirect(w, "/login") 35 return 36 } ··· 53 } 54 55 if user.Did == session.Did { 56 - log.Println("failed to react to study session, cannot react to your own study session") 57 htmx.HxError(w, http.StatusBadRequest, "You cannot react to your own study sessions.") 58 return 59 } ··· 73 74 reaction, err := db.ReactionFromString(db.ReactionType(reactionId).String()) 75 if err != nil { 76 - log.Printf("failed to get reaction types: %v", err) 77 htmx.HxError(w, http.StatusInternalServerError, "Failed to get global study session feed, try again later.") 78 return 79 } 80 81 reactionEvents, err := db.GetReactionsForSession(h.Db, subjectDid, subjectRkey) 82 if err != nil { 83 - log.Println("failed to get reactions for study session from db:", err) 84 htmx.HxError(w, http.StatusInternalServerError, "Failed to get global study session feed, try again later.") 85 return 86 } ··· 89 case http.MethodPost: 90 reactionEvent, err := db.GetReactionEvent(h.Db, user.Did, session, reaction.ID) 91 if err != nil { 92 - log.Println("failed to get reaction event from db:", err) 93 htmx.HxError(w, http.StatusInternalServerError, "Failed to add reaction, try again later.") 94 return 95 } 96 if reactionEvent != nil { 97 - log.Println("failed to add reaction, user already reacted") 98 htmx.HxError(w, http.StatusBadRequest, "You cannot react multiple times with the same reaction.") 99 return 100 } ··· 113 }}, 114 }) 115 if err != nil { 116 - log.Println("failed to create reaction record:", err) 117 htmx.HxError(w, http.StatusInternalServerError, "Failed to add reaction, try again later.") 118 return 119 } ··· 128 Set("session_rkey", subjectRkey), 129 }) 130 if err != nil { 131 - log.Println("failed to enqueue posthog event:", err) 132 } 133 } 134 ··· 153 case http.MethodDelete: 154 reactionEvent, err := db.GetReactionEvent(h.Db, user.Did, session, reaction.ID) 155 if err != nil { 156 - log.Println("failed to get reaction event from db:", err) 157 htmx.HxError(w, http.StatusInternalServerError, "Failed to remove reaction, try again later.") 158 return 159 } ··· 164 Rkey: reactionEvent.Rkey, 165 }) 166 if err != nil { 167 - log.Println("failed to delete reaction record:", err) 168 htmx.HxError(w, http.StatusInternalServerError, "Failed to remove reaction, try again later.") 169 return 170 } ··· 179 Set("session_rkey", subjectRkey), 180 }) 181 if err != nil { 182 - log.Println("failed to enqueue posthog event:", err) 183 } 184 } 185 ··· 188 }) 189 190 partials.NewReactions(partials.NewReactionsProps{ 191 - User: user, 192 - SessionRkey: subjectRkey, 193 - SessionDid: subjectDid, 194 - // Reactions: reactions, 195 ReactionEvents: reactionEvents, 196 }).Render(r.Context(), w) 197 }
··· 1 package handlers 2 3 import ( 4 "net/http" 5 "slices" 6 "strconv" ··· 20 ) 21 22 func (h *Handler) HandleReaction(w http.ResponseWriter, r *http.Request) { 23 + l := h.Logger.With("handler", "HandleReaction") 24 + 25 client, err := h.Oauth.AuthorizedClient(r) 26 if err != nil { 27 + l.Error("failed to get authorized client", "err", err) 28 htmx.HxRedirect(w, "/login") 29 return 30 } 31 32 user, err := bsky.GetUserWithBskyProfile(h.Oauth, r) 33 if err != nil { 34 + l.Error("failed to get logged-in user", "err", err) 35 htmx.HxRedirect(w, "/login") 36 return 37 } ··· 54 } 55 56 if user.Did == session.Did { 57 + l.Error("failed to react to study session, cannot react to your own study session") 58 htmx.HxError(w, http.StatusBadRequest, "You cannot react to your own study sessions.") 59 return 60 } ··· 74 75 reaction, err := db.ReactionFromString(db.ReactionType(reactionId).String()) 76 if err != nil { 77 + l.Error("failed to get reaction types", "err", err) 78 htmx.HxError(w, http.StatusInternalServerError, "Failed to get global study session feed, try again later.") 79 return 80 } 81 82 reactionEvents, err := db.GetReactionsForSession(h.Db, subjectDid, subjectRkey) 83 if err != nil { 84 + l.Error("failed to get reactions for study session from db", "err", err) 85 htmx.HxError(w, http.StatusInternalServerError, "Failed to get global study session feed, try again later.") 86 return 87 } ··· 90 case http.MethodPost: 91 reactionEvent, err := db.GetReactionEvent(h.Db, user.Did, session, reaction.ID) 92 if err != nil { 93 + l.Error("failed to get reaction event from db", "err", err) 94 htmx.HxError(w, http.StatusInternalServerError, "Failed to add reaction, try again later.") 95 return 96 } 97 if reactionEvent != nil { 98 + l.Error("failed to add reaction, user already reacted") 99 htmx.HxError(w, http.StatusBadRequest, "You cannot react multiple times with the same reaction.") 100 return 101 } ··· 114 }}, 115 }) 116 if err != nil { 117 + l.Error("failed to create reaction record", "err", err) 118 htmx.HxError(w, http.StatusInternalServerError, "Failed to add reaction, try again later.") 119 return 120 } ··· 129 Set("session_rkey", subjectRkey), 130 }) 131 if err != nil { 132 + l.Error("failed to enqueue posthog event", "err", err) 133 } 134 } 135 ··· 154 case http.MethodDelete: 155 reactionEvent, err := db.GetReactionEvent(h.Db, user.Did, session, reaction.ID) 156 if err != nil { 157 + l.Error("failed to get reaction event from db", "err", err) 158 htmx.HxError(w, http.StatusInternalServerError, "Failed to remove reaction, try again later.") 159 return 160 } ··· 165 Rkey: reactionEvent.Rkey, 166 }) 167 if err != nil { 168 + l.Error("failed to delete reaction record", "err", err) 169 htmx.HxError(w, http.StatusInternalServerError, "Failed to remove reaction, try again later.") 170 return 171 } ··· 180 Set("session_rkey", subjectRkey), 181 }) 182 if err != nil { 183 + l.Error("failed to enqueue posthog event", "err", err) 184 } 185 } 186 ··· 189 }) 190 191 partials.NewReactions(partials.NewReactionsProps{ 192 + User: user, 193 + SessionRkey: subjectRkey, 194 + SessionDid: subjectDid, 195 ReactionEvents: reactionEvents, 196 }).Render(r.Context(), w) 197 }

History

1 round 0 comments
sign up or login to add to the discussion
brookjeynes.dev submitted #0
1 commit
expand
feat(handlers/reaction): use slogger
expand 0 comments
pull request successfully merged