···
···
func (h *Handler) HandleNewActivityPage(w http.ResponseWriter, r *http.Request) {
user, err := bsky.GetUserWithBskyProfile(h.Oauth, r)
-
log.Println("failed to get logged-in user:", err)
htmx.HxRedirect(w, "/login")
···
client, err := h.Oauth.AuthorizedClient(r)
-
log.Println("failed to get authorized client:", err)
htmx.HxRedirect(w, "/login")
newActivity, err := parseActivityForm(r)
-
log.Println("invalid activity form:", err)
htmx.HxError(w, http.StatusBadRequest, "Failed to create activity, ensure all fields contain valid data.")
···
newActivity.CreatedAt = time.Now().UTC()
if err := db.ValidateActivity(newActivity); err != nil {
-
log.Println("invalid activity def:", err)
case errors.Is(err, db.ErrActivityNameEmpty):
htmx.HxError(w, http.StatusBadRequest, "Activity must have a name.")
···
-
log.Println("failed to create activity record:", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to create activity, try again later.")
err = SavePendingCreate(h, w, r, PendingActivityCreation, newActivity)
-
log.Printf("failed to save yoten-session to add pending activity creation: %v", err)
···
Set("category_count", len(categoriesString)),
-
log.Println("failed to enqueue posthog event:", err)
···
func (h *Handler) HandleDeleteActivity(w http.ResponseWriter, r *http.Request) {
user := h.Oauth.GetUser(r)
-
log.Println("failed to get logged-in user")
htmx.HxRedirect(w, "/login")
client, err := h.Oauth.AuthorizedClient(r)
-
log.Println("failed to get authorized client:", err)
htmx.HxError(w, http.StatusUnauthorized, "Failed to delete activity, try again later.")
···
rkey := chi.URLParam(r, "rkey")
activity, err := db.GetActivityByRkey(h.Db, user.Did, rkey)
-
log.Println("failed to get activity from db:", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to delete activity, try again later.")
if user.Did != activity.Did {
-
log.Printf("user '%s' does not own record '%s'", user.Did, rkey)
htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to edit this activity.")
···
-
log.Println("failed to delete activity from PDS:", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to delete activity, try again later.")
err = SavePendingDelete(h, w, r, PendingActivityDeletion, activity)
-
log.Printf("failed to save yoten-session to add pending activity deletion: %v", err)
···
Set("activity_id", activity.ID),
-
log.Println("failed to enqueue posthog event:", err)
···
func (h *Handler) HandleEditActivityPage(w http.ResponseWriter, r *http.Request) {
user, err := bsky.GetUserWithBskyProfile(h.Oauth, r)
-
log.Println("failed to get logged-in user:", err)
htmx.HxRedirect(w, "/login")
···
rkey := chi.URLParam(r, "rkey")
activity, err := db.GetActivityByRkey(h.Db, user.Did, rkey)
-
log.Println("failed to get activity from db:", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to update activity, try again later.")
if user.Did != activity.Did {
-
log.Printf("user '%s' does not own record '%s'", user.Did, rkey)
htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to edit this activity.")
···
client, err := h.Oauth.AuthorizedClient(r)
-
log.Println("failed to get authorized client:", err)
htmx.HxRedirect(w, "/login")
updatedActivity, err := parseActivityForm(r)
-
log.Println("invalid activity form:", err)
htmx.HxError(w, http.StatusBadRequest, "Failed to create activity, ensure all fields contain valid data.")
···
updatedActivity.CreatedAt = activity.CreatedAt
if err := db.ValidateActivity(updatedActivity); err != nil {
-
log.Println("invalid activity def:", err)
case errors.Is(err, db.ErrActivityNameEmpty):
htmx.HxError(w, http.StatusBadRequest, "Activity must have a name.")
···
-
log.Println("failed to update study session record:", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to update activity, try again later.")
err = SavePendingUpdate(h, w, r, PendingActivityUpdates, updatedActivity)
-
log.Printf("failed to save yoten-session to add pending activity updates: %v", err)
···
Set("category_count", len(categoriesString)),
-
log.Println("failed to enqueue posthog event:", err)
···
···
func (h *Handler) HandleNewActivityPage(w http.ResponseWriter, r *http.Request) {
+
l := h.Logger.With("handler", "HandleNewActivityPage")
user, err := bsky.GetUserWithBskyProfile(h.Oauth, r)
+
l.Error("failed to get logged-in user", "err", err)
htmx.HxRedirect(w, "/login")
···
client, err := h.Oauth.AuthorizedClient(r)
+
l.Error("failed to get authorized client", "err", err)
htmx.HxRedirect(w, "/login")
newActivity, err := parseActivityForm(r)
+
l.Error("invalid activity form", "err", err)
htmx.HxError(w, http.StatusBadRequest, "Failed to create activity, ensure all fields contain valid data.")
···
newActivity.CreatedAt = time.Now().UTC()
if err := db.ValidateActivity(newActivity); err != nil {
+
l.Error("invalid activity def", "err", err)
case errors.Is(err, db.ErrActivityNameEmpty):
htmx.HxError(w, http.StatusBadRequest, "Activity must have a name.")
···
+
l.Error("failed to create activity record", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to create activity, try again later.")
err = SavePendingCreate(h, w, r, PendingActivityCreation, newActivity)
+
l.Error("failed to save yoten-session to add pending activity creation", "err", err)
···
Set("category_count", len(categoriesString)),
+
l.Error("failed to enqueue posthog event", "err", err)
···
func (h *Handler) HandleDeleteActivity(w http.ResponseWriter, r *http.Request) {
+
l := h.Logger.With("handler", "HandleDeleteActivity")
user := h.Oauth.GetUser(r)
+
l.Error("failed to get logged-in user")
htmx.HxRedirect(w, "/login")
client, err := h.Oauth.AuthorizedClient(r)
+
l.Error("failed to get authorized client", "err", err)
htmx.HxError(w, http.StatusUnauthorized, "Failed to delete activity, try again later.")
···
rkey := chi.URLParam(r, "rkey")
activity, err := db.GetActivityByRkey(h.Db, user.Did, rkey)
+
l.Error("failed to get activity from db", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to delete activity, try again later.")
if user.Did != activity.Did {
+
l.Error("user does not own record", "did", user.Did, "activityDid", activity.Did)
htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to edit this activity.")
···
+
l.Error("failed to delete activity from PDS", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to delete activity, try again later.")
err = SavePendingDelete(h, w, r, PendingActivityDeletion, activity)
+
l.Error("failed to save yoten-session to add pending activity deletion", "err", err)
···
Set("activity_id", activity.ID),
+
l.Error("failed to enqueue posthog event", "err", err)
···
func (h *Handler) HandleEditActivityPage(w http.ResponseWriter, r *http.Request) {
+
l := h.Logger.With("handler", "HandleEditActivityPage")
user, err := bsky.GetUserWithBskyProfile(h.Oauth, r)
+
l.Error("failed to get logged-in user", "err", err)
htmx.HxRedirect(w, "/login")
···
rkey := chi.URLParam(r, "rkey")
activity, err := db.GetActivityByRkey(h.Db, user.Did, rkey)
+
l.Error("failed to get activity from db", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to update activity, try again later.")
if user.Did != activity.Did {
+
l.Error("user does not own record", "did", user.Did, "activityDid", activity.Did)
htmx.HxError(w, http.StatusUnauthorized, "You do not have permissions to edit this activity.")
···
client, err := h.Oauth.AuthorizedClient(r)
+
l.Error("failed to get authorized client", "err", err)
htmx.HxRedirect(w, "/login")
updatedActivity, err := parseActivityForm(r)
+
l.Error("invalid activity form", "err", err)
htmx.HxError(w, http.StatusBadRequest, "Failed to create activity, ensure all fields contain valid data.")
···
updatedActivity.CreatedAt = activity.CreatedAt
if err := db.ValidateActivity(updatedActivity); err != nil {
+
l.Error("invalid activity def", "err", err)
case errors.Is(err, db.ErrActivityNameEmpty):
htmx.HxError(w, http.StatusBadRequest, "Activity must have a name.")
···
+
l.Error("failed to update study session record", "err", err)
htmx.HxError(w, http.StatusInternalServerError, "Failed to update activity, try again later.")
err = SavePendingUpdate(h, w, r, PendingActivityUpdates, updatedActivity)
+
l.Error("failed to save yoten-session to add pending activity updates", "err", err)
···
Set("category_count", len(categoriesString)),
+
l.Error("failed to enqueue posthog event", "err", err)