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)
|
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
|
// Push notifications
|
||||||
pushHandler.RegisterRoutes(r)
|
pushHandler.RegisterRoutes(r)
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ type createEventRequest struct {
|
|||||||
Color *string `json:"color"`
|
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.Get("/{channelID}/events", h.ListEvents)
|
||||||
r.Post("/{channelID}/events", h.CreateEvent)
|
r.Post("/{channelID}/events", h.CreateEvent)
|
||||||
r.Patch("/events/{eventID}", h.UpdateEvent)
|
r.Patch("/events/{eventID}", h.UpdateEvent)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ func (h *Handler) RegisterRoutes(r chi.Router) {
|
|||||||
r.Get("/{channelID}/threads", h.ListThreads)
|
r.Get("/{channelID}/threads", h.ListThreads)
|
||||||
r.Patch("/threads/{threadID}", h.UpdateThread)
|
r.Patch("/threads/{threadID}", h.UpdateThread)
|
||||||
h.registerForumRoutes(r)
|
h.registerForumRoutes(r)
|
||||||
h.registerCalendarRoutes(r)
|
h.RegisterCalendarRoutes(r)
|
||||||
h.registerDocRoutes(r)
|
h.registerDocRoutes(r)
|
||||||
h.registerListRoutes(r)
|
h.registerListRoutes(r)
|
||||||
h.registerOverrideRoutes(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`;
|
const to = `${date.getFullYear()}-${String(date.getMonth() + 2).padStart(2, '0')}-01T00:00:00Z`;
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
api.get<CalendarEvent[]>(`/channels/${channelId}/events?from=${encodeURIComponent(from)}&to=${encodeURIComponent(to)}`)
|
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));
|
.finally(() => setLoading(false));
|
||||||
}, [channelId, date]);
|
}, [channelId, date]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user