From af913b992326e81ef65214a50e4a81e98f7f9d39 Mon Sep 17 00:00:00 2001 From: hobokenchicken Date: Thu, 9 Jul 2026 14:43:34 -0400 Subject: [PATCH] fix(calendar): use r.Route subrouter to avoid chi path ambiguity with /channels/events/{eventID} --- cmd/server/main.go | 7 +++++++ internal/channel/calendar.go | 2 +- internal/channel/handlers.go | 2 +- web/src/components/CalendarView.tsx | 6 +++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/cmd/server/main.go b/cmd/server/main.go index b723b2d..1b14dec 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -243,6 +243,13 @@ func main() { notification.NewHandler(database.DB, logger).RegisterRoutes(r) }) + // Calendar events + calHandler := channel.NewHandler(database.DB, permissionsChecker) + r.Route("/channels/{channelID}/events", func(r chi.Router) { + r.Get("/", calHandler.ListEvents) + r.Post("/", calHandler.CreateEvent) + }) + // Push notifications pushHandler.RegisterRoutes(r) diff --git a/internal/channel/calendar.go b/internal/channel/calendar.go index c1b3725..69adb56 100644 --- a/internal/channel/calendar.go +++ b/internal/channel/calendar.go @@ -39,7 +39,7 @@ type createEventRequest struct { Color *string `json:"color"` } -func (h *Handler) registerCalendarRoutes(r chi.Router) { +func (h *Handler) RegisterCalendarRoutes(r chi.Router) { r.Get("/{channelID}/events", h.ListEvents) r.Post("/{channelID}/events", h.CreateEvent) r.Patch("/events/{eventID}", h.UpdateEvent) diff --git a/internal/channel/handlers.go b/internal/channel/handlers.go index b870056..721c7db 100644 --- a/internal/channel/handlers.go +++ b/internal/channel/handlers.go @@ -31,7 +31,7 @@ func (h *Handler) RegisterRoutes(r chi.Router) { r.Get("/{channelID}/threads", h.ListThreads) r.Patch("/threads/{threadID}", h.UpdateThread) h.registerForumRoutes(r) - h.registerCalendarRoutes(r) + h.RegisterCalendarRoutes(r) h.registerDocRoutes(r) h.registerListRoutes(r) h.registerOverrideRoutes(r) diff --git a/web/src/components/CalendarView.tsx b/web/src/components/CalendarView.tsx index 3973e05..8ca58e2 100644 --- a/web/src/components/CalendarView.tsx +++ b/web/src/components/CalendarView.tsx @@ -49,7 +49,11 @@ export function CalendarView({ channelId, channelName }: CalendarViewProps) { const to = `${date.getFullYear()}-${String(date.getMonth() + 2).padStart(2, '0')}-01T00:00:00Z`; setLoading(true); api.get(`/channels/${channelId}/events?from=${encodeURIComponent(from)}&to=${encodeURIComponent(to)}`) - .then((data) => setEvents(Array.isArray(data) ? data : [])) + .then((data) => { + console.log('[calendar] loaded', data?.length, 'events for channel', channelId); + setEvents(Array.isArray(data) ? data : []); + }) + .catch((err) => console.error('[calendar] fetch error:', err)) .finally(() => setLoading(false)); }, [channelId, date]);