package api import ( "github.com/gin-gonic/gin" "github.com/goWxHook/goWxHook/core" "github.com/goWxHook/goWxHook/utils" ) // getRoomList // // @Summary 获取群列表 // @Description 获取群列表接口 // @Tags 群管理 // @Accept json // @Produce json // @Response 200 {object} CommonStringResponse{Data=[]core.GetChatRoomListResponseDataItem} "{\"code\":0, ....} // @Router /api/v1/contact/room/list [get] func (w *WebApi) getRoomList(c *gin.Context) { list, err := w.WxApi.GetChatRoomList() if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", list) return } // getRoomMemberList // // @Summary 获取群成员列表 // @Description 获取群成员列表接口 // @Tags 群管理 // @Accept json // @Produce json // @Param roomWxid path string true "微信群ID" // @Response 200 {object} CommonStringResponse{Data=core.GetChatRoomMemberListResponseData} "{\"code\":0, ....} // @Router /api/v1/contact/room/member/list/{roomWxid} [get] func (w *WebApi) getRoomMemberList(c *gin.Context) { roomWxid := c.Param("roomWxid") if len(roomWxid) == 0 { utils.ResponseError(c, "roomWxid is required", nil) return } list, err := w.WxApi.GetChatRoomMemberList(roomWxid) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", list) return } // getRoomDetailInfo // // @Summary 获取微信群详细信息(协议) // @Description 获取微信群详细信息(协议)接口 // @Tags 群管理 // @Accept json // @Produce json // @Param roomWxid path string true "微信群ID" // @Response 200 {object} CommonStringResponse{Data=[]core.GetFriendDetailInfoByProtocolResponseDataContactListItem} "{\"code\":0, ....} // @Router /api/v1/contact/room/protocol/detail/{roomWxid} [get] func (w *WebApi) getRoomDetailInfo(c *gin.Context) { roomWxid := c.Param("roomWxid") if len(roomWxid) == 0 { utils.ResponseError(c, "roomWxid is required", nil) return } info, err := w.WxApi.GetRoomDetailInfoByProtocol(roomWxid) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", info) return } // getRoomInviteRelationList // // @Summary 获取群成员邀请关系(协议) // @Description 获取群成员邀请关系(协议)接口 // @Tags 群管理 // @Accept json // @Produce json // @Param roomWxid path string true "微信群ID" // @Response 200 {object} CommonStringResponse{Data=core.GetRoomMemberInviteListResponseData} "{\"code\":0, ....} // @Router /api/v1/contact/room/protocol/invite/list/{roomWxid} [get] func (w *WebApi) getRoomInviteRelationList(c *gin.Context) { roomWxid := c.Param("roomWxid") if len(roomWxid) == 0 { utils.ResponseError(c, "roomWxid is required", nil) return } info, err := w.WxApi.GetRoomMemberInviteList(roomWxid) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", info) return } // createRoom // // @Summary 创建群聊 // @Description 创建群聊接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.CreateRoomRequest true "微信ID列表" // @Response 200 {object} CommonStringResponse "{\"code\":0, ....} // @Router /api/v1/contact/room/create [post] func (w *WebApi) createRoom(c *gin.Context) { var form core.CreateRoomRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.Wxids) == 0 { utils.ResponseError(c, "wxids is required", nil) return } err = w.WxApi.CreateChatRoom(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return } // createRoomByProtocol // // @Summary 创建群聊(协议) // @Description 创建群聊(协议)接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.CreateRoomRequest true "微信ID列表" // @Response 200 {object} CommonStringResponse{Data=core.CreateChatRoomByProtocolResponseData} "{\"code\":0, ....} // @Router /api/v1/contact/room/protocol/create [post] func (w *WebApi) createRoomByProtocol(c *gin.Context) { var form core.CreateRoomRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.Wxids) == 0 { utils.ResponseError(c, "wxids is required", nil) return } info, err := w.WxApi.CreateChatRoomByProtocol(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", info) return } // inviteToRoom // // @Summary 邀请好友进群 // @Description 邀请好友进群接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.InviteToRoomRequest true "邀请信息" // @Response 200 {object} CommonStringResponse{Data=core.InviteToRoomResponseData} "{\"code\":0, ....} // @Router /api/v1/contact/room/member/invite [post] func (w *WebApi) inviteToRoom(c *gin.Context) { var form core.InviteToRoomRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.MemberList) == 0 { utils.ResponseError(c, "member_list is required", nil) return } info, err := w.WxApi.InviteToRoom(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", info) return } // deleteRoomMember // // @Summary 踢除群成员 // @Description 踢除群成员接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.DelChatRoomMemberRequest true "成员信息" // @Response 200 {object} CommonStringResponse{} "{\"code\":0, ....} // @Router /api/v1/contact/room/member/delete [post] func (w *WebApi) deleteRoomMember(c *gin.Context) { var form core.DelChatRoomMemberRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.MemberList) == 0 { utils.ResponseError(c, "member_list is required", nil) return } err = w.WxApi.DelChatRoomMember(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return } // editRoomName // // @Summary 修改群聊名称 // @Description 修改群聊名称接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.EditChatRoomMemberRequest true "成员信息" // @Response 200 {object} CommonStringResponse{} "{\"code\":0, ....} // @Router /api/v1/contact/room/name/modify [post] func (w *WebApi) editRoomName(c *gin.Context) { var form core.EditChatRoomMemberRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.RoomWxid) == 0 { utils.ResponseError(c, "room_wxid is required", nil) return } err = w.WxApi.EditChatRoomName(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return } // editRoomNotice // // @Summary 修改群公告 // @Description 修改群公告接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.EditChatRoomNoticeRequest true "公告信息" // @Response 200 {object} CommonStringResponse{} "{\"code\":0, ....} // @Router /api/v1/contact/room/notice/modify [post] func (w *WebApi) editRoomNotice(c *gin.Context) { var form core.EditChatRoomNoticeRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.RoomWxid) == 0 { utils.ResponseError(c, "room_wxid is required", nil) return } err = w.WxApi.EditChatRoomNotice(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return } // editRoomMineNickName // // @Summary 修改我在本群的昵称 // @Description 修改我在本群的昵称接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.EditRoomMineNickNameRequest true "昵称信息" // @Response 200 {object} CommonStringResponse{} "{\"code\":0, ....} // @Router /api/v1/contact/room/mine/nickname/modify [post] func (w *WebApi) editRoomMineNickName(c *gin.Context) { var form core.EditRoomMineNickNameRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.RoomWxid) == 0 { utils.ResponseError(c, "room_wxid is required", nil) return } err = w.WxApi.EditRoomMineNickName(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return } // showRoomNickName // // @Summary 是否显示群成员昵称 // @Description 是否显示群成员昵称接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.RoomShowNickNameRequest true "昵称信息" // @Response 200 {object} CommonStringResponse{} "{\"code\":0, ....} // @Router /api/v1/contact/room/member/nickname/show [post] func (w *WebApi) showRoomNickName(c *gin.Context) { var form core.RoomShowNickNameRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.RoomWxid) == 0 { utils.ResponseError(c, "room_wxid is required", nil) return } err = w.WxApi.RoomShowNickName(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return } // roomSaveToContact // // @Summary 保存到/移出通讯录 // @Description 保存到/移出通讯录接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.SaveRoomSaveToContactRequest true "昵称信息" // @Response 200 {object} CommonStringResponse{} "{\"code\":0, ....} // @Router /api/v1/contact/room/to_contact/save [post] func (w *WebApi) roomSaveToContact(c *gin.Context) { var form core.SaveRoomSaveToContactRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.RoomWxid) == 0 { utils.ResponseError(c, "room_wxid is required", nil) return } err = w.WxApi.SaveRoomSaveToContact(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return } // addRoomMemberToFriend // // @Summary 添加群成员为好友 // @Description 添加群成员为好友接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.AddFriendRequest true "添加好友信息" // @Response 200 {object} CommonStringResponse "{\"code\":0, ....} // @Router /api/v1/contact/room/friend/add [post] func (w *WebApi) addRoomMemberToFriend(c *gin.Context) { var form core.AddFriendRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.Wxid) == 0 { utils.ResponseError(c, "wxid is required", nil) return } err = w.WxApi.AddFriend(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return } // deleteRoom // // @Summary 退出群聊 // @Description 退出群聊接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.DelChatRoomRequest true "推出的群聊" // @Response 200 {object} CommonStringResponse "{\"code\":0, ....} // @Router /api/v1/contact/room/delete [post] func (w *WebApi) deleteRoom(c *gin.Context) { var form core.DelChatRoomRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } if len(form.RoomWxid) == 0 { utils.ResponseError(c, "room_wxid is required", nil) return } err = w.WxApi.DelChatRoom(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return } // autoAcceptRoom // // @Summary 自动接受群邀请 // @Description 自动接受群邀请接口 // @Tags 群管理 // @Accept json // @Produce json // @Param body body core.AutoAcceptRoomRequest true "自动接受群邀请" // @Response 200 {object} CommonStringResponse "{\"code\":0, ....} // @Router /api/v1/contact/room/accept/auto [post] func (w *WebApi) autoAcceptRoom(c *gin.Context) { var form core.AutoAcceptRoomRequest err := c.ShouldBindJSON(&form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } err = w.WxApi.AutoAcceptRoom(form) if err != nil { utils.ResponseError(c, err.Error(), nil) return } utils.ResponseOK(c, "success", nil) return }