package handler import ( "net/http" apperrors "github.com/Tencent/WeKnora/internal/errors" "github.com/gin-gonic/gin" ) func (h *DigitalHumanHandler) WeChatChannels(c *gin.Context) { data, err := h.service.WeChatChannels(c.Request.Context(), c.Param("id")) if err != nil { digitalHumanHTTPError(c, err) return } c.JSON(http.StatusOK, gin.H{"success": true, "data": data}) } func (h *DigitalHumanHandler) WeChatQRCode(c *gin.Context) { data, err := h.service.WeChatQRCode(c.Request.Context(), c.Param("id")) if err != nil { digitalHumanHTTPError(c, err) return } c.JSON(http.StatusOK, gin.H{"success": true, "data": data}) } func (h *DigitalHumanHandler) WeChatPoll(c *gin.Context) { c.Request.Body = http.MaxBytesReader(c.Writer, c.Request.Body, 4096) var input struct { QRCode string `json:"qrcode" binding:"required"` } if err := c.ShouldBindJSON(&input); err != nil { c.Error(apperrors.NewBadRequestError("请先获取微信二维码")) return } data, err := h.service.WeChatPoll(c.Request.Context(), c.Param("id"), input.QRCode) if err != nil { digitalHumanHTTPError(c, err) return } c.JSON(http.StatusOK, gin.H{"success": true, "data": data}) } func (h *DigitalHumanHandler) DeleteWeChatChannel(c *gin.Context) { if err := h.service.DeleteWeChatChannel(c.Request.Context(), c.Param("id"), c.Param("channel_id")); err != nil { digitalHumanHTTPError(c, err) return } c.JSON(http.StatusOK, gin.H{"success": true}) } func (h *DigitalHumanHandler) SetWeChatChannelEnabled(c *gin.Context) { c.Request.Body = http.MaxBytesReader(c.Writer, c.Request.Body, 4096) var input struct { Enabled *bool `json:"enabled"` } if err := c.ShouldBindJSON(&input); err != nil || input.Enabled == nil { c.Error(apperrors.NewBadRequestError("请提供连接启用状态")) return } if err := h.service.SetWeChatChannelEnabled(c.Request.Context(), c.Param("id"), c.Param("channel_id"), *input.Enabled); err != nil { digitalHumanHTTPError(c, err) return } c.JSON(http.StatusOK, gin.H{"success": true}) }