package v1 import ( "git.lzcwy.cn/zhengchiliu/zt-closet-backend/internal/dto" "git.lzcwy.cn/zhengchiliu/zt-closet-backend/internal/middleware" "git.lzcwy.cn/zhengchiliu/zt-closet-backend/internal/service" "git.lzcwy.cn/zhengchiliu/zt-closet-backend/pkg/app" "git.lzcwy.cn/zhengchiliu/zt-closet-backend/pkg/errcode" "github.com/gin-gonic/gin" ) // LikeHandler 点赞相关接口。 type LikeHandler struct { svc *service.LikeService } // NewLikeHandler 创建点赞 handler。 func NewLikeHandler() *LikeHandler { return &LikeHandler{svc: service.NewLikeService()} } // Like 点赞/取消点赞社区穿搭。 func (h *LikeHandler) Like(c *gin.Context) { response := app.NewResponse(c) userID, ok := middleware.GetUserID(c.Request.Context()) if !ok { response.ToErrorResponse(errcode.Unauthorized) return } var request dto.LikeCreateRequest if err := c.ShouldBindJSON(&request); err != nil { response.ToErrorResponse(errcode.InvalidParams.WithDetails(err.Error())) return } out, e := h.svc.LikeCreate(c.Request.Context(), userID, &request) if e != nil { response.ToErrorResponse(e) return } response.ToResponse(out) } // GetByTarget 查询穿搭点赞状态与数量(targetUUID 来自路径参数)。 func (h *LikeHandler) GetByTarget(c *gin.Context) { response := app.NewResponse(c) userID, ok := middleware.GetUserID(c.Request.Context()) if !ok { response.ToErrorResponse(errcode.Unauthorized) return } request := dto.LikeGetByTargetIDRequest{TargetUUID: c.Param("targetUUID")} if request.TargetUUID == "" { response.ToErrorResponse(errcode.InvalidParams) return } out, e := h.svc.GetByTargetID(c.Request.Context(), userID, &request) if e != nil { response.ToErrorResponse(e) return } response.ToResponse(out) }