Add monitoring service and database schema
- Implement monitoring service with heartbeat, lease tasks, resume tasks, and task result handling. - Create monitoring time utilities for business date calculations. - Add unit tests for date window resolution and business day handling. - Define database schema for monitoring-related tables including quotas, daily reports, and task management. - Establish migration scripts for creating and dropping monitoring tables.
This commit is contained in:
@@ -20,6 +20,14 @@ func RegisterRoutes(app *bootstrap.App) {
|
||||
callbacks.POST("/bind", pluginHandler.PluginBindCallback)
|
||||
callbacks.POST("/publish", pluginHandler.PluginPublishCallback)
|
||||
|
||||
monitoringCallbackHandler := NewMonitoringCallbackHandler(app)
|
||||
monitoringPlugin := app.Engine.Group("/api/plugin/monitoring")
|
||||
monitoringPlugin.POST("/heartbeat", monitoringCallbackHandler.Heartbeat)
|
||||
monitoringPlugin.POST("/tasks/lease", monitoringCallbackHandler.LeaseTasks)
|
||||
monitoringPlugin.POST("/tasks/resume", monitoringCallbackHandler.ResumeTasks)
|
||||
monitoringPlugin.POST("/tasks/:id/result", monitoringCallbackHandler.TaskResult)
|
||||
monitoringPlugin.POST("/tasks/:id/skip", monitoringCallbackHandler.SkipTask)
|
||||
|
||||
protected := app.Engine.Group("/api")
|
||||
protected.Use(auth.Middleware(app.JWT, app.Sessions))
|
||||
protected.Use(middleware.TenantScope())
|
||||
@@ -89,6 +97,12 @@ func RegisterRoutes(app *bootstrap.App) {
|
||||
brands.PUT("/:id/competitors/:cid", brandHandler.UpdateCompetitor)
|
||||
brands.DELETE("/:id/competitors/:cid", brandHandler.DeleteCompetitor)
|
||||
|
||||
monitoring := protected.Group("/tenant/monitoring")
|
||||
monitoringHandler := NewMonitoringHandler(app)
|
||||
monitoring.GET("/dashboard/composite", monitoringHandler.DashboardComposite)
|
||||
monitoring.GET("/brands/:brand_id/questions/:question_id/detail", monitoringHandler.QuestionDetail)
|
||||
monitoring.POST("/brands/:brand_id/collect-now", monitoringHandler.CollectNow)
|
||||
|
||||
knowledge := protected.Group("/tenant/knowledge")
|
||||
knowledgeHandler := NewKnowledgeHandler(app)
|
||||
knowledge.GET("/groups", knowledgeHandler.ListGroups)
|
||||
|
||||
Reference in New Issue
Block a user