package handlers import ( "platform/web/auth" "platform/web/core" g "platform/web/globals" s "platform/web/services" "github.com/gofiber/fiber/v2" ) func NavArticle(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitOfficialClient() if err != nil { return err } list, err := s.Article.Nav() if err != nil { return err } return c.JSON(list) } func GetArticle(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitOfficialClient() if err != nil { return err } var req core.IdReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } article, err := s.Article.GetPublic(req.Id) if err != nil { return err } return c.JSON(article) } func PageArticleByAdmin(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeArticleRead) if err != nil { return err } var req s.PageArticleReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } list, total, err := s.Article.Page(&req) if err != nil { return err } return c.JSON(core.PageResp{ Total: int(total), Page: req.GetPage(), Size: req.GetSize(), List: list, }) } func GetArticleByAdmin(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeArticleRead) if err != nil { return err } var req core.IdReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } article, err := s.Article.GetByAdmin(req.Id) if err != nil { return err } return c.JSON(article) } func CreateArticle(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeArticleWrite) if err != nil { return err } var req s.CreateArticleData if err := g.Validator.ParseBody(c, &req); err != nil { return err } return s.Article.Create(req) } func UpdateArticle(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeArticleWrite) if err != nil { return err } var req s.UpdateArticleData if err := g.Validator.ParseBody(c, &req); err != nil { return err } return s.Article.Update(req) } func DeleteArticle(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeArticleWrite) if err != nil { return err } var req core.IdReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } return s.Article.Delete(req.Id) }