From a006e156822924942cce0879119d25e12017ad9e Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 25 Jan 2025 22:08:36 +0800 Subject: [PATCH] :sparkles: Admin trigger scan task api --- pkg/internal/server/api/admin_api.go | 16 ++++++++++++++++ pkg/internal/server/api/index.go | 6 ++++++ 2 files changed, 22 insertions(+) create mode 100644 pkg/internal/server/api/admin_api.go diff --git a/pkg/internal/server/api/admin_api.go b/pkg/internal/server/api/admin_api.go new file mode 100644 index 0000000..77d980d --- /dev/null +++ b/pkg/internal/server/api/admin_api.go @@ -0,0 +1,16 @@ +package api + +import ( + "git.solsynth.dev/hypernet/nexus/pkg/nex/sec" + "git.solsynth.dev/hypernet/reader/pkg/internal/services" + "github.com/gofiber/fiber" +) + +func adminTriggerScanTask(c *fiber.Ctx) error { + if err := sec.EnsureGrantedPerm(c, "AdminTriggerNewsScan", true); err != nil { + return err + } + + go services.ScanNewsSources() + return c.SendStatus(fiber.StatusOK) +} diff --git a/pkg/internal/server/api/index.go b/pkg/internal/server/api/index.go index b6bbbb3..d3b41fc 100644 --- a/pkg/internal/server/api/index.go +++ b/pkg/internal/server/api/index.go @@ -1,12 +1,18 @@ package api import ( + "git.solsynth.dev/hypernet/nexus/pkg/nex/sec" "github.com/gofiber/fiber/v2" ) func MapAPIs(app *fiber.App, baseURL string) { api := app.Group(baseURL).Name("API") { + admin := api.Group("/admin").Name("Admin") + { + admin.Post("/scan", sec.ValidatorMiddleware, adminTriggerScanTask) + } + api.Get("/well-known/sources", getNewsSources) api.Get("/link/*", getLinkMeta) }