init push
This commit is contained in:
92
backend/handler/v1/comment.go
Normal file
92
backend/handler/v1/comment.go
Normal file
@@ -0,0 +1,92 @@
|
||||
package v1
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo/v4"
|
||||
|
||||
"github.com/chaitin/panda-wiki/consts"
|
||||
"github.com/chaitin/panda-wiki/domain"
|
||||
"github.com/chaitin/panda-wiki/handler"
|
||||
"github.com/chaitin/panda-wiki/log"
|
||||
"github.com/chaitin/panda-wiki/middleware"
|
||||
"github.com/chaitin/panda-wiki/usecase"
|
||||
)
|
||||
|
||||
type CommentHandler struct {
|
||||
*handler.BaseHandler
|
||||
logger *log.Logger
|
||||
auth middleware.AuthMiddleware
|
||||
usecase *usecase.CommentUsecase
|
||||
}
|
||||
|
||||
func NewCommentHandler(e *echo.Echo, baseHandler *handler.BaseHandler, logger *log.Logger, auth middleware.AuthMiddleware,
|
||||
usecase *usecase.CommentUsecase) *CommentHandler {
|
||||
h := &CommentHandler{
|
||||
BaseHandler: baseHandler,
|
||||
logger: logger.WithModule("handler.v1.comment"),
|
||||
auth: auth,
|
||||
usecase: usecase,
|
||||
}
|
||||
|
||||
group := e.Group("/api/v1/comment", h.auth.Authorize, h.auth.ValidateKBUserPerm(consts.UserKBPermissionDataOperate))
|
||||
group.GET("", h.GetCommentModeratedList)
|
||||
group.DELETE("/list", h.DeleteCommentList)
|
||||
|
||||
return h
|
||||
}
|
||||
|
||||
type CommentLists = domain.PaginatedResult[[]*domain.CommentListItem]
|
||||
|
||||
// GetCommentModeratedList
|
||||
//
|
||||
// @Summary GetCommentModeratedList
|
||||
// @Description GetCommentModeratedList
|
||||
// @Tags comment
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param req query domain.CommentListReq true "CommentListReq"
|
||||
// @Success 200 {object} domain.PWResponse{data=CommentLists} "conversationList"
|
||||
// @Router /api/v1/comment [get]
|
||||
func (h *CommentHandler) GetCommentModeratedList(c echo.Context) error {
|
||||
var req domain.CommentListReq
|
||||
if err := c.Bind(&req); err != nil {
|
||||
return h.NewResponseWithError(c, "bind request", err)
|
||||
}
|
||||
if err := c.Validate(&req); err != nil {
|
||||
return h.NewResponseWithError(c, "invalid request", err)
|
||||
}
|
||||
|
||||
ctx := c.Request().Context()
|
||||
|
||||
commentList, err := h.usecase.GetCommentListByKbID(ctx, &req, consts.GetLicenseEdition(c))
|
||||
if err != nil {
|
||||
return h.NewResponseWithError(c, "failed to get comment list KBID", err)
|
||||
}
|
||||
return h.NewResponseWithData(c, commentList)
|
||||
}
|
||||
|
||||
// DeleteCommentList
|
||||
//
|
||||
// @Summary DeleteCommentList
|
||||
// @Description DeleteCommentList
|
||||
// @Tags comment
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param req query domain.DeleteCommentListReq true "DeleteCommentListReq"
|
||||
// @Success 200 {object} domain.Response "total"
|
||||
// @Router /api/v1/comment/list [delete]
|
||||
func (h *CommentHandler) DeleteCommentList(c echo.Context) error {
|
||||
var req domain.DeleteCommentListReq
|
||||
ids := c.QueryParams()["ids[]"]
|
||||
if len(ids) == 0 {
|
||||
return h.NewResponseWithError(c, "len comment id is zero", nil)
|
||||
}
|
||||
req.IDS = ids
|
||||
ctx := c.Request().Context()
|
||||
err := h.usecase.DeleteCommentList(ctx, &req)
|
||||
if err != nil {
|
||||
return h.NewResponseWithError(c, "failed to delete comment list", err)
|
||||
}
|
||||
|
||||
// success
|
||||
return h.NewResponseWithData(c, nil)
|
||||
}
|
||||
Reference in New Issue
Block a user