mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 18:52:56 +00:00
upload
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"fotbal-club/internal/controllers"
|
||||
"fotbal-club/internal/middleware"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
"time"
|
||||
)
|
||||
|
||||
func RegisterAnalyticsRoutes(router *gin.RouterGroup, db *gorm.DB) {
|
||||
analyticsController := controllers.NewAnalyticsController(db)
|
||||
|
||||
// Public tracking endpoint (no auth, rate-limited)
|
||||
router.POST("/analytics/track", middleware.RateLimit(120, time.Minute), analyticsController.TrackEvent)
|
||||
|
||||
// Analytics visitors endpoint (protected, used by dashboard widgets)
|
||||
router.GET("/analytics/visitors", middleware.JWTAuth(db), middleware.RoleAuth("admin"), analyticsController.GetVisitors)
|
||||
|
||||
// Protected admin routes
|
||||
admin := router.Group("/admin/analytics")
|
||||
admin.Use(middleware.JWTAuth(db))
|
||||
admin.Use(middleware.RoleAuth("admin"))
|
||||
{
|
||||
admin.GET("", analyticsController.GetAnalytics) // GET /admin/analytics (summary)
|
||||
admin.GET("/overview", analyticsController.GetAnalyticsOverview)
|
||||
admin.GET("/top-pages", analyticsController.GetTopPages)
|
||||
admin.GET("/top-articles", analyticsController.GetTopArticles)
|
||||
admin.GET("/top-interactions", analyticsController.GetTopInteractions)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user