mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-30 03:36:37 +08:00
95 lines
5.6 KiB
Go
95 lines
5.6 KiB
Go
package handler
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/ShukeBta/MediaStationGo/internal/middleware"
|
|
"github.com/ShukeBta/MediaStationGo/internal/service"
|
|
)
|
|
|
|
func registerAuthedDownloadRoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
authed.GET("/downloads", requirePermission(svc, "can_manage_downloads"), listDownloadsHandler(svc))
|
|
authed.POST("/downloads", requirePermission(svc, "can_manage_downloads"), addDownloadHandler(svc))
|
|
authed.DELETE("/downloads/:hash", requirePermission(svc, "can_manage_downloads"), deleteDownloadHandler(svc))
|
|
authed.POST("/downloads/relocate", requirePermission(svc, "can_manage_downloads"), relocateDownloadHandler(svc))
|
|
authed.POST("/downloads/reload", requirePermission(svc, "can_manage_downloads"), reloadDownloadConfigHandler(svc))
|
|
}
|
|
|
|
func registerAuthedSubscriptionRoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
authed.GET("/subscriptions", requirePermission(svc, "can_manage_subscriptions"), listSubscriptionsHandler(svc))
|
|
authed.GET("/subscriptions/history", requirePermission(svc, "can_manage_subscriptions"), listSubscriptionHistoryHandler(svc))
|
|
authed.POST("/subscriptions", requirePermission(svc, "can_manage_subscriptions"), createSubscriptionHandler(svc))
|
|
authed.DELETE("/subscriptions/:id", requirePermission(svc, "can_manage_subscriptions"), deleteSubscriptionHandler(svc))
|
|
authed.POST("/subscriptions/:id/restore", requirePermission(svc, "can_manage_subscriptions"), restoreSubscriptionHandler(svc))
|
|
authed.POST("/subscriptions/:id/run", requirePermission(svc, "can_manage_subscriptions"), runSubscriptionHandler(svc))
|
|
}
|
|
|
|
func registerAuthedStatsDiscoveryAndAIRoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
authed.GET("/stats", statsHandler(svc))
|
|
authed.GET("/tasks", middleware.AdminRequired(), tasksHandler(svc))
|
|
|
|
authed.GET("/discover/trending", requirePermission(svc, "can_view_discover"), trendingHandler(svc))
|
|
authed.GET("/discover/popular", requirePermission(svc, "can_view_discover"), popularHandler(svc))
|
|
|
|
authed.GET("/ai/status", requirePermission(svc, "can_use_ai"), aiStatusHandler(svc))
|
|
authed.POST("/ai/search", requirePermission(svc, "can_use_ai"), smartSearchHandler(svc))
|
|
authed.GET("/ai/recommend", requirePermission(svc, "can_use_ai"), aiRecommendHandler(svc))
|
|
}
|
|
|
|
func registerAuthedFileRoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
authed.GET("/files", middleware.AdminRequired(), browseFilesHandler(svc))
|
|
authed.POST("/files/folders", middleware.AdminRequired(), createFolderHandler(svc))
|
|
authed.PUT("/files/rename", middleware.AdminRequired(), renameFileHandler(svc))
|
|
authed.DELETE("/files", middleware.AdminRequired(), deleteFileHandler(svc))
|
|
authed.POST("/files/transfer", middleware.AdminRequired(), transferFileHandler(svc))
|
|
}
|
|
|
|
func registerAuthedDLNARoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
authed.GET("/dlna/devices", dlnaListHandler(svc))
|
|
authed.POST("/dlna/cast", dlnaCastHandler(svc))
|
|
}
|
|
|
|
func registerAuthedSTRMRoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
authed.PUT("/media/:id/strm", middleware.AdminRequired(), setSTRMHandler(svc))
|
|
authed.DELETE("/media/:id/strm", middleware.AdminRequired(), clearSTRMHandler(svc))
|
|
authed.GET("/strm/output-presets", middleware.AdminRequired(), listSTRMOutputPresetsHandler(svc))
|
|
authed.POST("/strm/import", middleware.AdminRequired(), importSTRMHandler(svc))
|
|
authed.POST("/strm/generate", middleware.AdminRequired(), generateSTRMHandler(svc))
|
|
authed.POST("/strm/generate-from-tree", middleware.AdminRequired(), generateSTRMFromTreeHandler(svc))
|
|
authed.POST("/strm/repair", middleware.AdminRequired(), repairSTRMHandler(svc))
|
|
}
|
|
|
|
func registerAuthedDuplicateRoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
authed.GET("/duplicates", middleware.AdminRequired(), listDuplicatesHandler(svc))
|
|
authed.POST("/duplicates/scan", middleware.AdminRequired(), detectDuplicatesHandler(svc))
|
|
authed.POST("/duplicates/unmark", middleware.AdminRequired(), unmarkDuplicatesHandler(svc))
|
|
}
|
|
|
|
func registerAuthedSiteRoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
siteHandler := NewSiteHandler(svc)
|
|
authed.GET("/sites", requirePermission(svc, "can_manage_sites"), siteHandler.ListSites)
|
|
authed.GET("/sites/types", requirePermission(svc, "can_manage_sites"), siteHandler.GetSiteTypes)
|
|
authed.GET("/sites/auth-types", requirePermission(svc, "can_manage_sites"), siteHandler.GetAuthTypes)
|
|
authed.POST("/sites", requirePermission(svc, "can_manage_sites"), siteHandler.CreateSite)
|
|
authed.GET("/sites/:id", requirePermission(svc, "can_manage_sites"), siteHandler.GetSite)
|
|
authed.PUT("/sites/:id", requirePermission(svc, "can_manage_sites"), siteHandler.UpdateSite)
|
|
authed.DELETE("/sites/:id", requirePermission(svc, "can_manage_sites"), siteHandler.DeleteSite)
|
|
authed.POST("/sites/:id/test", requirePermission(svc, "can_manage_sites"), siteHandler.TestSite)
|
|
authed.GET("/sites/search", requirePermission(svc, "can_manage_sites"), siteSearchHandler(svc))
|
|
}
|
|
|
|
func registerAuthedRecycleAndRealtimeRoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
authed.GET("/recycle", middleware.AdminRequired(), listRecycleHandler(svc))
|
|
authed.POST("/recycle/restore", middleware.AdminRequired(), restoreMediaBatchHandler(svc))
|
|
authed.POST("/recycle/purge", middleware.AdminRequired(), purgeMediaBatchHandler(svc))
|
|
|
|
authed.GET("/ws", wsHandler(svc))
|
|
authed.GET("/events", sseHandler(svc))
|
|
}
|
|
|
|
func registerAuthedSchedulerRoutes(authed *gin.RouterGroup, svc *service.Container) {
|
|
authed.GET("/scheduler/tasks", schedulerListTasksHandler(svc))
|
|
authed.POST("/scheduler/tasks/:id/run", middleware.AdminRequired(), schedulerRunTaskHandler(svc))
|
|
authed.GET("/scheduler/status", schedulerGetStatusHandler(svc))
|
|
}
|