veza/veza-backend-api/internal/api/routes_analytics.go
senke e11984898d chore: consolidate CI, E2E, backend and frontend updates
- CI: workflows updates (cd, ci), remove playwright.yml
- E2E: global-setup, auth/playlists/profile specs
- Remove playwright-report and test-results artifacts from tracking
- Backend: auth, handlers, services, workers, migrations
- Frontend: components, features, vite config
- Add e2e-results.json to gitignore
- Docs: REMEDIATION_PROGRESS, audit archive
- Rust: chat-server, stream-server updates
2026-02-17 16:43:21 +01:00

35 lines
1.1 KiB
Go

package api
import (
"github.com/gin-gonic/gin"
"veza-backend-api/internal/core/analytics"
"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 := analytics.NewHandler(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)
analytics.GET("/traffic-sources", analyticsHandler.GetTrafficSources)
analytics.GET("/device-breakdown", analyticsHandler.GetDeviceBreakdown)
}
}