mirror of
https://gitee.com/shikong-sk/gofiber-study
synced 2025-02-24 15:52:15 +08:00
90 lines
2.3 KiB
Go
90 lines
2.3 KiB
Go
package topical
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2"
|
|
"gofiber.study.skcks.cn/common/errorx"
|
|
|
|
"gofiber.study.skcks.cn/common/response"
|
|
"gofiber.study.skcks.cn/controller/types"
|
|
"gofiber.study.skcks.cn/global"
|
|
"gofiber.study.skcks.cn/middleware"
|
|
topical2 "gofiber.study.skcks.cn/model/topical"
|
|
"gofiber.study.skcks.cn/services/topical"
|
|
)
|
|
|
|
type Controller struct {
|
|
*types.Controller
|
|
}
|
|
|
|
func (c *Controller) GetRouter() fiber.Router {
|
|
return c.Router
|
|
}
|
|
|
|
func NewController(app *fiber.App) *Controller {
|
|
return &Controller{
|
|
Controller: types.NewController(app, "/topical", middleware.CasbinMiddleWare),
|
|
}
|
|
}
|
|
|
|
// CreateTopical 创建主题
|
|
//
|
|
// @Summary 创建主题
|
|
// @Description 创建主题
|
|
// @Tags Topical
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param vo body topical.CreateTopicalDTO true "CreateTopicalDTO"
|
|
// @Success 200 {object} response.Response{data=string}
|
|
// @Failure default {object} errorx.CodeErrorResponse
|
|
// @Router /topical/create [post]
|
|
// @Security Token
|
|
func (c *Controller) CreateTopical() {
|
|
c.Router.Post("/create", func(ctx *fiber.Ctx) error {
|
|
token := ctx.GetReqHeaders()["Token"]
|
|
claim, _ := global.ParseToken(token)
|
|
id := claim.Id
|
|
|
|
var dto = &topical2.CreateTopicalDTO{}
|
|
|
|
_ = ctx.BodyParser(dto)
|
|
err := topical.Services.CreateTopical(*dto, id)
|
|
if err != nil {
|
|
return ctx.JSON(errorx.ParseError(err))
|
|
}
|
|
|
|
return ctx.JSON(response.NewResponse("主题创建成功"))
|
|
})
|
|
}
|
|
|
|
// DeleteTopical 删除主题
|
|
//
|
|
// @Summary 删除主题
|
|
// @Description 删除主题
|
|
// @Tags Topical
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param vo query topical.DeleteTopicalDTO true "DeleteTopicalDTO"
|
|
// @Success 200 {object} response.Response{data=string}
|
|
// @Failure default {object} errorx.CodeErrorResponse
|
|
// @Router /topical/delete [delete]
|
|
// @Security Token
|
|
func (c *Controller) DeleteTopical() {
|
|
c.Router.Delete("/delete", func(ctx *fiber.Ctx) error {
|
|
var dto = &topical2.DeleteTopicalDTO{}
|
|
|
|
_ = ctx.QueryParser(dto)
|
|
|
|
err := global.ValidateStruct(dto)
|
|
if err != nil {
|
|
return ctx.JSON(errorx.ParseError(err))
|
|
}
|
|
|
|
err = topical.Services.DeleteTopical(*dto)
|
|
if err != nil {
|
|
return ctx.JSON(errorx.ParseError(err))
|
|
}
|
|
|
|
return ctx.JSON(response.NewResponse("主题删除成功"))
|
|
})
|
|
}
|