Files
2026-07-13 13:39:47 +08:00

85 lines
2.7 KiB
Go

package server
func (s *Server) registerRoutes() {
s.engine.GET("/healthy", s.healthHandler.Check)
s.registerSwaggerRoute()
// Video player routes (when video-root is configured)
if s.videoHandler != nil {
v1 := s.engine.Group("/api/v1")
s.videoHandler.RegisterRoutes(v1)
s.engine.GET("/videos/:id", s.videoHandler.ServeVideoByID)
}
api := s.engine.Group("/api")
{
api.POST("/tasks", s.taskHandler.Create)
api.GET("/tasks/:id", s.taskHandler.Get)
api.GET("/tasks", s.taskHandler.List)
api.POST("/tasks/:id/stop", s.taskHandler.Stop)
api.GET("/tasks/:id/logs", s.taskHandler.Logs)
api.GET("/config", s.configHandler.GetStore)
api.POST("/config", s.configHandler.Update)
api.GET("/config/:key", s.configHandler.GetKey)
api.PUT("/config/:key", s.configHandler.SetKey)
api.GET("/events", s.eventHandler.Stream)
// Auth
auth := api.Group("/auth")
{
auth.POST("/setup", s.authHandler.Setup)
auth.POST("/signin", s.authHandler.Signin)
auth.GET("/status", s.authHandler.Status)
}
// Utility
api.GET("/url/title", s.utilHandler.GetPageTitle)
api.GET("/env", s.utilHandler.GetEnvPaths)
}
// Database persistence routes (only registered when database is available)
if s.downloadHandler != nil {
downloads := api.Group("/downloads")
{
downloads.POST("", s.downloadHandler.Create)
downloads.GET("", s.downloadHandler.List)
downloads.GET("/folders", s.downloadHandler.Folders)
downloads.GET("/export", s.downloadHandler.Export)
downloads.GET("/active", s.downloadHandler.Active)
downloads.PUT("/status", s.downloadHandler.UpdateStatus)
downloads.GET("/:id", s.downloadHandler.Get)
downloads.PUT("/:id", s.downloadHandler.Edit)
downloads.DELETE("/:id", s.downloadHandler.Delete)
downloads.POST("/:id/start", s.downloadHandler.Start)
downloads.POST("/:id/stop", s.downloadHandler.Stop)
downloads.PUT("/:id/live", s.downloadHandler.UpdateIsLive)
downloads.GET("/:id/logs", s.downloadHandler.Logs)
}
}
if s.favoriteHandler != nil {
favorites := api.Group("/favorites")
{
favorites.GET("", s.favoriteHandler.List)
favorites.POST("", s.favoriteHandler.Create)
favorites.DELETE("/:id", s.favoriteHandler.Delete)
favorites.GET("/export", s.favoriteHandler.Export)
favorites.POST("/import", s.favoriteHandler.Import)
}
}
if s.conversionHandler != nil {
conversions := api.Group("/conversions")
{
conversions.GET("", s.conversionHandler.List)
conversions.POST("", s.conversionHandler.Create)
conversions.DELETE("/:id", s.conversionHandler.Delete)
conversions.GET("/:id", s.conversionHandler.Get)
conversions.POST("/:id/start", s.conversionHandler.Start)
conversions.POST("/:id/stop", s.conversionHandler.Stop)
}
}
}