mirror of
https://github.com/snowykami/neo-blog.git
synced 2025-09-23 17:46:22 +00:00
All checks were successful
Push to Helm Chart Repository / build (push) Successful in 13s
- Added support for nested comments with reply functionality. - Implemented like/unlike feature for comments and posts. - Enhanced comment DTO to include reply count, like count, and like status. - Updated comment and like services to handle new functionalities. - Created new API endpoints for toggling likes and listing comments. - Improved UI components for comments to support replies and likes with animations. - Added localization for new comment-related messages. - Introduced a TODO list for future enhancements in the comment module.
41 lines
1.0 KiB
Go
41 lines
1.0 KiB
Go
package v1
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/cloudwego/hertz/pkg/app"
|
|
"github.com/cloudwego/hertz/pkg/common/utils"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/snowykami/neo-blog/internal/dto"
|
|
"github.com/snowykami/neo-blog/internal/service"
|
|
"github.com/snowykami/neo-blog/pkg/errs"
|
|
"github.com/snowykami/neo-blog/pkg/resps"
|
|
)
|
|
|
|
type LikeController struct {
|
|
service *service.LikeService
|
|
}
|
|
|
|
func NewLikeController() *LikeController {
|
|
return &LikeController{
|
|
service: service.NewLikeService(),
|
|
}
|
|
}
|
|
|
|
func (lc *LikeController) ToggleLike(ctx context.Context, c *app.RequestContext) {
|
|
var toggleLikeReq dto.ToggleLikeReq
|
|
if err := c.BindAndValidate(&toggleLikeReq); err != nil {
|
|
logrus.Error(err)
|
|
resps.BadRequest(c, resps.ErrParamInvalid)
|
|
return
|
|
}
|
|
liked, err := lc.service.ToggleLike(ctx, toggleLikeReq.TargetID, toggleLikeReq.TargetType)
|
|
if err != nil {
|
|
serviceErr := errs.AsServiceError(err)
|
|
logrus.Error(serviceErr.Error())
|
|
resps.Custom(c, serviceErr.Code, serviceErr.Message, nil)
|
|
return
|
|
}
|
|
resps.Ok(c, resps.Success, utils.H{"status": liked})
|
|
}
|