fix(calendar): use r.Route subrouter to avoid chi path ambiguity with /channels/events/{eventID}
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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<CalendarEvent[]>(`/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]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user