tracking prototype
This commit is contained in:
19
src/main.go
19
src/main.go
@@ -50,8 +50,16 @@ var (
|
||||
func main() {
|
||||
e.Renderer = NewTemplates()
|
||||
|
||||
// Initialize tracking service
|
||||
trackingService, err := util.NewTrackingService("data/tracking.db")
|
||||
if err != nil {
|
||||
e.Logger.Fatal("Failed to initialize tracking service:", err)
|
||||
}
|
||||
defer trackingService.Close()
|
||||
|
||||
e.Logger.SetLevel(log.DEBUG)
|
||||
e.Use(middleware.Logger())
|
||||
e.Use(trackingService.TrackingMiddleware())
|
||||
if util.IsProd() {
|
||||
e.Use(middleware.Gzip())
|
||||
e.Use(middleware.HTTPSRedirect())
|
||||
@@ -81,6 +89,17 @@ func main() {
|
||||
e.GET("/", func(c echo.Context) error {
|
||||
return c.Render(200, "index", newPage(boxes.GetBoxes()))
|
||||
})
|
||||
|
||||
// Tracking API endpoints (protected by bearer auth if needed)
|
||||
api := e.Group("/api")
|
||||
if util.IsProd() {
|
||||
api.Use(util.BearerAuthMiddleware())
|
||||
}
|
||||
api.GET("/tracking/stats", trackingService.GetEndpointStats)
|
||||
api.GET("/tracking/visits", trackingService.GetRecentVisits)
|
||||
api.GET("/tracking/summary", trackingService.GetTrackingSummary)
|
||||
api.GET("/tracking/trends", trackingService.GetTimeTrends)
|
||||
|
||||
e.GET("/boxes/ws", boxes.HandleBoxesWs)
|
||||
|
||||
e.GET("/draw", draw.Page)
|
||||
|
||||
Reference in New Issue
Block a user