85 lines
2.7 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|