From bb67a7652eac0124f356269395db0e71ddfb4fb8 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 29 Jun 2026 17:48:28 +0000 Subject: [PATCH] fix: resolve duplicate path prefix issues for message and webhook routes --- cmd/server/main.go | 6 ++++-- internal/message/handlers.go | 4 ++-- internal/webhook/handlers.go | 5 ++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cmd/server/main.go b/cmd/server/main.go index 70b253d..d4aa111 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -205,10 +205,12 @@ func main() { bot.NewCommandHandler(database.DB).RegisterCommandRoutes(r) }) - // Webhooks (protected: create/delete) + // Webhooks (protected: create/list/delete) + webhookHandler := webhook.NewHandler(database.DB, hub) r.Route("/channels/{channelID}/webhooks", func(r chi.Router) { - webhook.NewHandler(database.DB, hub).RegisterRoutes(r) + webhookHandler.RegisterRoutes(r) }) + r.Delete("/webhooks/{webhookID}", webhookHandler.Delete) // Invites (rate limited to prevent brute-force join) r.Route("/invites", func(r chi.Router) { diff --git a/internal/message/handlers.go b/internal/message/handlers.go index 11b304f..70d5de9 100644 --- a/internal/message/handlers.go +++ b/internal/message/handlers.go @@ -30,8 +30,8 @@ func NewHandler(db *sql.DB, hub *gateway.Hub, pushHandler *push.Handler, logger } func (h *Handler) RegisterRoutes(r chi.Router) { - r.Get("/{channelID}/messages", h.List) - r.Post("/{channelID}/messages", h.Create) + r.Get("/", h.List) + r.Post("/", h.Create) r.Patch("/{messageID}", h.Update) r.Delete("/{messageID}", h.Delete) } diff --git a/internal/webhook/handlers.go b/internal/webhook/handlers.go index 3a14cce..fc643f6 100644 --- a/internal/webhook/handlers.go +++ b/internal/webhook/handlers.go @@ -29,9 +29,8 @@ func NewHandler(db *sql.DB, hub *gateway.Hub) *Handler { // GET /channels/{channelID}/webhooks - list webhooks for channel // DELETE /webhooks/{webhookID} - delete webhook func (h *Handler) RegisterRoutes(r chi.Router) { - r.Post("/channels/{channelID}/webhooks", h.Create) - r.Get("/channels/{channelID}/webhooks", h.List) - r.Delete("/webhooks/{webhookID}", h.Delete) + r.Post("/", h.Create) + r.Get("/", h.List) } // RegisterPublicRoutes registers the public webhook execution route (no auth).