feat(router): add system settings routes and handler wiring
Router configuration updates: - Add SystemSettingsHandler to Config struct - Register GET /api/libraries/scan-settings (admin-only) - Register PUT /api/libraries/scan-settings (admin-only) - Wire SystemSettingsHandler in main.go These routes replace per-user scan settings endpoints with system-wide admin-only endpoints.
This commit is contained in:
@@ -49,6 +49,10 @@ func registerLibraryRoutes(cfg *Config) {
|
||||
return cfg.MediaHandler.ListMediaItems(c)
|
||||
})
|
||||
|
||||
// System scan settings (admin-only)
|
||||
adminLibrary.GET("/scan-settings", cfg.SystemSettingsHandler.GetScanSettings)
|
||||
adminLibrary.PUT("/scan-settings", cfg.SystemSettingsHandler.UpdateScanSettings)
|
||||
|
||||
// User library visibility control
|
||||
userLibrary := library.Group("/visibility")
|
||||
userLibrary.GET("", cfg.LibraryHandler.GetUserVisibleLibraries)
|
||||
|
||||
+22
-21
@@ -31,27 +31,28 @@ func (cv *CustomValidator) Validate(i interface{}) error {
|
||||
|
||||
// Config holds all dependencies needed for route registration
|
||||
type Config struct {
|
||||
Echo *echo.Echo
|
||||
Queries *database.Queries
|
||||
Cfg *config.Config
|
||||
DBPool interface{} // pgxpool.Pool interface
|
||||
AuthHandler *handlers.AuthHandler
|
||||
LibraryHandler *handlers.LibraryHandler
|
||||
DeviceHandler *handlers.DeviceHandler
|
||||
MediaHandler *handlers.MediaHandler
|
||||
SearchHandler *handlers.SearchHandler
|
||||
MatchingHandler *handlers.MatchingHandler
|
||||
KOReaderHandler *handlers.KOReaderHandler
|
||||
WSHandler *handlers.WSHandler
|
||||
ConflictHandler *handlers.ConflictHandler
|
||||
AnalyticsHandler *handlers.AnalyticsHandler
|
||||
QueueHandler *handlers.QueueHandler
|
||||
CollectionHandler *handlers.CollectionHandler
|
||||
OPDSHandler *handlers.OPDSHandler
|
||||
ConnManager *sync.ConnectionManager
|
||||
QueueProcessor *sync.SyncQueueProcessor
|
||||
DeviceAuthMiddleware *middleware.DeviceAuthMiddleware
|
||||
LoginTracker *ratelimit.LoginAttemptTracker
|
||||
Echo *echo.Echo
|
||||
Queries *database.Queries
|
||||
Cfg *config.Config
|
||||
DBPool interface{} // pgxpool.Pool interface
|
||||
AuthHandler *handlers.AuthHandler
|
||||
LibraryHandler *handlers.LibraryHandler
|
||||
DeviceHandler *handlers.DeviceHandler
|
||||
MediaHandler *handlers.MediaHandler
|
||||
SearchHandler *handlers.SearchHandler
|
||||
MatchingHandler *handlers.MatchingHandler
|
||||
KOReaderHandler *handlers.KOReaderHandler
|
||||
WSHandler *handlers.WSHandler
|
||||
ConflictHandler *handlers.ConflictHandler
|
||||
AnalyticsHandler *handlers.AnalyticsHandler
|
||||
QueueHandler *handlers.QueueHandler
|
||||
CollectionHandler *handlers.CollectionHandler
|
||||
OPDSHandler *handlers.OPDSHandler
|
||||
SystemSettingsHandler *handlers.SystemSettingsHandler
|
||||
ConnManager *sync.ConnectionManager
|
||||
QueueProcessor *sync.SyncQueueProcessor
|
||||
DeviceAuthMiddleware *middleware.DeviceAuthMiddleware
|
||||
LoginTracker *ratelimit.LoginAttemptTracker
|
||||
}
|
||||
|
||||
// createJWTMiddleware creates a JWT middleware with proper user context setup
|
||||
|
||||
Reference in New Issue
Block a user