tt/api/room.go

459 lines
12 KiB
Go
Raw Normal View History

2024-05-28 08:47:31 +08:00
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
}