package api import ( "context" "github.com/gin-gonic/gin" "veza-backend-api/internal/handlers" "veza-backend-api/internal/services" "veza-backend-api/internal/workers" ) // setupWebhookRoutes configure les routes pour les webhooks func (r *APIRouter) setupWebhookRoutes(router *gin.RouterGroup) { webhookService := services.NewWebhookService(r.db.GormDB, r.logger, r.config.JWTSecret) webhookWorker := workers.NewWebhookWorker( r.db.GormDB, webhookService, r.logger, 100, 5, 3, ) go webhookWorker.Start(context.Background()) webhookHandler := handlers.NewWebhookHandler(webhookService, webhookWorker, r.logger) webhooks := router.Group("/webhooks") if r.config.AuthMiddleware != nil { webhooks.Use(r.config.AuthMiddleware.RequireAuth()) r.applyCSRFProtection(webhooks) } { webhooks.POST("", webhookHandler.RegisterWebhook()) webhooks.GET("", webhookHandler.ListWebhooks()) webhooks.DELETE("/:id", webhookHandler.DeleteWebhook()) webhooks.GET("/stats", webhookHandler.GetWebhookStats()) webhooks.POST("/:id/test", webhookHandler.TestWebhook()) webhooks.POST("/:id/regenerate-key", webhookHandler.RegenerateAPIKey()) } }