33 lines
957 B
Go
33 lines
957 B
Go
package api
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"veza-backend-api/internal/handlers"
|
|
"veza-backend-api/internal/services"
|
|
)
|
|
|
|
// setupAnalyticsRoutes configure les routes pour les analytics
|
|
func (r *APIRouter) setupAnalyticsRoutes(router *gin.RouterGroup) {
|
|
if r.db == nil || r.db.GormDB == nil {
|
|
return
|
|
}
|
|
|
|
analyticsService := services.NewAnalyticsService(r.db.GormDB, r.logger)
|
|
analyticsHandler := handlers.NewAnalyticsHandler(analyticsService, r.logger)
|
|
|
|
if r.config != nil && r.config.JobWorker != nil {
|
|
analyticsHandler.SetJobWorker(r.config.JobWorker)
|
|
}
|
|
|
|
analytics := router.Group("/analytics")
|
|
if r.config != nil && r.config.AuthMiddleware != nil {
|
|
analytics.Use(r.config.AuthMiddleware.RequireAuth())
|
|
r.applyCSRFProtection(analytics)
|
|
}
|
|
{
|
|
analytics.GET("", analyticsHandler.GetAnalytics)
|
|
analytics.POST("/events", analyticsHandler.RecordEvent)
|
|
analytics.GET("/tracks/:id", analyticsHandler.GetTrackAnalyticsDashboard)
|
|
}
|
|
}
|