package handlers import ( "platform/web/auth" "platform/web/core" g "platform/web/globals" s "platform/web/services" "github.com/gofiber/fiber/v2" ) func PageCouponByAdmin(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeCouponRead) if err != nil { return err } var req core.PageReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } list, total, err := s.Coupon.Page(&req) if err != nil { return err } return c.JSON(core.PageResp{ Total: int(total), Page: req.GetPage(), Size: req.GetSize(), List: list, }) } func AllCouponByAdmin(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeCouponRead) if err != nil { return err } list, err := s.Coupon.All() if err != nil { return err } return c.JSON(list) } func CreateCoupon(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeCouponWrite) if err != nil { return err } var req s.CreateCouponData if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.Coupon.Create(req) if err != nil { return err } return nil } func UpdateCoupon(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeCouponWrite) if err != nil { return err } var req s.UpdateCouponData if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.Coupon.Update(req) if err != nil { return err } return nil } func DeleteCoupon(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeCouponWrite) if err != nil { return err } var req core.IdReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.Coupon.Delete(req.Id) if err != nil { return err } return nil }