refactor: simplify auth and subscription links

This commit is contained in:
2026-07-28 10:32:21 +08:00
parent b7a7cd9c71
commit fc8c23beee
41 changed files with 739 additions and 1468 deletions
+10 -19
View File
@@ -11,15 +11,14 @@ import (
// Deps holds all shared dependencies for handlers.
type Deps struct {
Cfg *config.Config
DB *sqlx.DB
SourceRepo *database.SourceRepo
Cfg *config.Config
DB *sqlx.DB
SourceRepo *database.SourceRepo
CollectionRepo *database.CollectionRepo
TemplateRepo *database.TemplateRepo
SettingsRepo *database.SettingsRepo
GrantRepo *database.GrantRepo
RecycleRepo *database.RecycleRepo
CacheRepo *database.CacheRepo
TemplateRepo *database.TemplateRepo
SettingsRepo *database.SettingsRepo
RecycleRepo *database.RecycleRepo
CacheRepo *database.CacheRepo
}
func NewDeps(cfg *config.Config, db *sqlx.DB) *Deps {
@@ -30,7 +29,6 @@ func NewDeps(cfg *config.Config, db *sqlx.DB) *Deps {
CollectionRepo: database.NewCollectionRepo(db),
TemplateRepo: database.NewTemplateRepo(db),
SettingsRepo: database.NewSettingsRepo(db),
GrantRepo: database.NewGrantRepo(db),
RecycleRepo: database.NewRecycleRepo(db),
CacheRepo: database.NewCacheRepo(db),
}
@@ -79,12 +77,6 @@ func RegisterRoutes(app *fiber.App, cfg *config.Config, db *sqlx.DB) {
api.Patch("/templates/:name", deps.HandleUpdateTemplate)
api.Delete("/templates/:name", deps.HandleDeleteTemplate)
// Shares (download grants)
api.Get("/shares", deps.HandleListShares)
api.Post("/shares", deps.HandleCreateShare)
api.Patch("/shares/:id", deps.HandleUpdateShare)
api.Delete("/shares/:id", deps.HandleDeleteShare)
// Recycle bin
api.Get("/recycle-bin", deps.HandleListRecycleBin)
api.Delete("/recycle-bin/:id", deps.HandleDeleteRecycleBinEntry)
@@ -104,13 +96,12 @@ func RegisterRoutes(app *fiber.App, cfg *config.Config, db *sqlx.DB) {
// Tool APIs
api.Post("/proxy/parse", deps.HandleProxyParse)
api.Post("/rule/parse", deps.HandleRuleParse)
api.Post("/utils/proxy-uri", deps.HandleProxyURI)
api.Post("/utils/node-info", deps.HandleNodeInfo)
// Public download routes — no admin token required, uses download token
app.Get("/download/collection/:name", deps.HandleDownloadCollection)
app.Get("/download/collection/:name/:target", deps.HandleDownloadCollection)
app.Get("/download/source/:name", deps.HandleDownloadSource)
app.Get("/download/source/:name/:target", deps.HandleDownloadSource)
app.Get("/sources/:name/:token", deps.HandleDownloadSource)
app.Get("/collections/:name/:token", deps.HandleDownloadCollection)
}
// success sends a success JSON response.