Files
platform/web/handlers/coupon.go

106 lines
1.7 KiB
Go

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 AllCouponsByAdmin(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
}