@ -10,6 +10,7 @@ import (
open_im_sdk "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils"
"context"
"github.com/golang/protobuf/ptypes/wrappers"
"github.com/gin-gonic/gin"
@ -19,6 +20,18 @@ import (
jsonData "Open_IM/internal/utils"
)
// @Summary 把用户踢出群组
// @Description 把用户踢出群组
// @Tags 群组相关
// @ID KickGroupMember
// @Accept json
// @Param token header string true "im token"
// @Param req body api.KickGroupMemberReq true "GroupID为要操作的群ID <br> kickedUserIDList为要踢出的群用户ID <br> reason为原因"
// @Produce json
// @Success 0 {object} api.KickGroupMemberResp "result为结果码, -1为失败, 0为成功"
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/kick_group [post]
func KickGroupMember ( c * gin . Context ) {
params := api . KickGroupMemberReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -36,13 +49,19 @@ func KickGroupMember(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "KickGroupMember args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . KickGroupMember ( context . Background ( ) , req )
if err != nil {
@ -65,6 +84,18 @@ func KickGroupMember(c *gin.Context) {
c . JSON ( http . StatusOK , memberListResp )
}
// @Summary 获取群成员信息
// @Description 获取群成员信息
// @Tags 群组相关
// @ID GetGroupMembersInfo
// @Accept json
// @Param token header string true "im token"
// @Param req body api.GetGroupMembersInfoReq true "groupID为要获取的群ID <br> memberList为要获取群成员的群ID列表"
// @Produce json
// @Success 0 {object} api.GetGroupMembersInfoResp{data=[]open_im_sdk.GroupMemberFullInfo}
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/get_group_members_info [post]
func GetGroupMembersInfo ( c * gin . Context ) {
params := api . GetGroupMembersInfoReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -81,13 +112,19 @@ func GetGroupMembersInfo(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "GetGroupMembersInfo args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . GetGroupMembersInfo ( context . Background ( ) , req )
@ -119,13 +156,19 @@ func GetGroupMemberList(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "GetGroupMemberList args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . GetGroupMemberList ( context . Background ( ) , req )
@ -142,6 +185,18 @@ func GetGroupMemberList(c *gin.Context) {
c . JSON ( http . StatusOK , memberListResp )
}
// @Summary 获取全部群成员列表
// @Description 获取全部群成员列表
// @Tags 群组相关
// @ID GetGroupAllMemberList
// @Accept json
// @Param token header string true "im token"
// @Param req body api.GetGroupAllMemberReq true "GroupID为要获取群成员的群ID"
// @Produce json
// @Success 0 {object} api.GetGroupAllMemberResp{data=[]open_im_sdk.GroupMemberFullInfo}
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/get_group_all_member_list [post]
func GetGroupAllMemberList ( c * gin . Context ) {
params := api . GetGroupAllMemberReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -158,13 +213,19 @@ func GetGroupAllMemberList(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "GetGroupAllMember args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . GetGroupAllMember ( context . Background ( ) , req )
if err != nil {
@ -179,6 +240,18 @@ func GetGroupAllMemberList(c *gin.Context) {
c . JSON ( http . StatusOK , memberListResp )
}
// @Summary 获取用户加入群列表
// @Description 获取用户加入群列表
// @Tags 群组相关
// @ID GetJoinedGroupList
// @Accept json
// @Param token header string true "im token"
// @Param req body api.GetJoinedGroupListReq true "fromUserID为要获取的用户ID"
// @Produce json
// @Success 0 {object} api.GetJoinedGroupListResp{data=[]open_im_sdk.GroupInfo}
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/get_joined_group_list [post]
func GetJoinedGroupList ( c * gin . Context ) {
params := api . GetJoinedGroupListReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -195,13 +268,19 @@ func GetJoinedGroupList(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "GetJoinedGroupList args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . GetJoinedGroupList ( context . Background ( ) , req )
if err != nil {
@ -216,6 +295,18 @@ func GetJoinedGroupList(c *gin.Context) {
c . JSON ( http . StatusOK , GroupListResp )
}
// @Summary 将用户拉入群组
// @Description 将用户拉入群组
// @Tags 群组相关
// @ID InviteUserToGroup
// @Accept json
// @Param token header string true "im token"
// @Param req body api.InviteUserToGroupReq true "groupID为要拉进的群组ID <br> invitedUserIDList为要获取群成员的群ID列表 <br> reason为原因"
// @Produce json
// @Success 0 {object} api.InviteUserToGroupResp "result为结果码, -1为失败, 0为成功""
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/invite_user_to_group [post]
func InviteUserToGroup ( c * gin . Context ) {
params := api . InviteUserToGroupReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -232,13 +323,19 @@ func InviteUserToGroup(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "InviteUserToGroup args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . InviteUserToGroup ( context . Background ( ) , req )
if err != nil {
@ -260,6 +357,18 @@ func InviteUserToGroup(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 创建群组
// @Description 创建群组
// @Tags 群组相关
// @ID CreateGroup
// @Accept json
// @Param token header string true "im token"
// @Param req body api.CreateGroupReq true "groupType这里填0代表普通群 <br>groupName为群名称<br> introduction为群介绍<br> notification为群公共<br>ownerUserID为群主ID <br> ex为群扩展字段 <br> memberList中对象roleLevel为群员角色,1为普通用户 2为群主 3为管理员"
// @Produce json
// @Success 0 {object} api.CreateGroupResp{data=open_im_sdk.GroupInfo}
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/create_group [post]
func CreateGroup ( c * gin . Context ) {
params := api . CreateGroupReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -281,7 +390,7 @@ func CreateGroup(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError, gin . H { "errCode" : 5 00, "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest, gin . H { "errCode" : 4 00, "errMsg" : errMsg } )
return
}
@ -290,7 +399,13 @@ func CreateGroup(c *gin.Context) {
log . NewInfo ( req . OperationID , "CreateGroup args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . CreateGroup ( context . Background ( ) , req )
if err != nil {
@ -308,7 +423,18 @@ func CreateGroup(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// 群主或管理员收到的
// @Summary 获取用户收到的加群信息列表
// @Description 获取用户收到的加群信息列表
// @Tags 群组相关
// @ID GetRecvGroupApplicationList
// @Accept json
// @Param token header string true "im token"
// @Param req body api.GetGroupApplicationListReq true "fromUserID为要获取的用户ID"
// @Produce json
// @Success 0 {object} api.GetGroupApplicationListResp{data=[]open_im_sdk.GroupRequest}
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/get_recv_group_applicationList [post]
func GetRecvGroupApplicationList ( c * gin . Context ) {
params := api . GetGroupApplicationListReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -318,16 +444,24 @@ func GetRecvGroupApplicationList(c *gin.Context) {
}
req := & rpc . GetGroupApplicationListReq { }
utils . CopyStructFields ( req , params )
//var ok bool
//ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
//if !ok {
// log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
// return
//}
var ok bool
var errInfo string
ok , req . OpUserID , errInfo = token_verify . GetUserIDFromToken ( c . Request . Header . Get ( "token" ) , req . OperationID )
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusBadRequest , gin . H { "errCode" : 400 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "GetGroupApplicationList args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
reply , err := client . GetGroupApplicationList ( context . Background ( ) , req )
if err != nil {
@ -342,6 +476,18 @@ func GetRecvGroupApplicationList(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 获取用户加群申请列表
// @Description 获取用户加群申请列表
// @Tags 群组相关
// @ID GetUserReqGroupApplicationList
// @Accept json
// @Param token header string true "im token"
// @Param req body api.GetUserReqGroupApplicationListReq true "userID为要获取的用户ID"
// @Produce json
// @Success 0 {object} api.GetGroupApplicationListResp{data=[]open_im_sdk.GroupRequest}
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/get_user_req_group_applicationList [post]
func GetUserReqGroupApplicationList ( c * gin . Context ) {
var params api . GetUserReqGroupApplicationListReq
if err := c . BindJSON ( & params ) ; err != nil {
@ -351,14 +497,23 @@ func GetUserReqGroupApplicationList(c *gin.Context) {
}
req := & rpc . GetUserReqApplicationListReq { }
utils . CopyStructFields ( req , params )
//ok, req.OpUserID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
//if !ok {
// log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
// return
//}
var ok bool
var errInfo string
ok , req . OpUserID , errInfo = token_verify . GetUserIDFromToken ( c . Request . Header . Get ( "token" ) , req . OperationID )
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusBadRequest , gin . H { "errCode" : 400 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "GetGroupsInfo args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . GetUserReqApplicationList ( context . Background ( ) , req )
if err != nil {
@ -368,11 +523,23 @@ func GetUserReqGroupApplicationList(c *gin.Context) {
}
log . NewInfo ( req . OperationID , RpcResp )
resp := api . GetGroupApplicationListResp { CommResp : api . CommResp { ErrCode : RpcResp . CommonResp . ErrCode , ErrMsg : RpcResp . CommonResp . ErrMsg } , GroupRequestList : RpcResp . GroupRequestList }
log . NewInfo ( req . OperationID , "GetGroupApplicationList api return " , resp )
resp . Data = jsonData . JsonDataList ( resp . GroupRequestList )
log . NewInfo ( req . OperationID , "GetGroupApplicationList api return " , resp )
c . JSON ( http . StatusOK , resp )
}
// @Summary 通过群ID列表获取群信息
// @Description 通过群ID列表获取群信息
// @Tags 群组相关
// @ID GetGroupsInfo
// @Accept json
// @Param token header string true "im token"
// @Param req body api.GetGroupInfoReq true "groupIDList为群ID列表"
// @Produce json
// @Success 0 {object} api.GetGroupInfoResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/get_groups_info [post]
func GetGroupsInfo ( c * gin . Context ) {
params := api . GetGroupInfoReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -389,12 +556,18 @@ func GetGroupsInfo(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "GetGroupsInfo args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . GetGroupsInfo ( context . Background ( ) , req )
if err != nil {
@ -409,7 +582,33 @@ func GetGroupsInfo(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
//func transferGroupInfo(input []*open_im_sdk.GroupInfo) []*api.GroupInfoAlias {
// var result []*api.GroupInfoAlias
// for _, v := range input {
// t := &api.GroupInfoAlias{}
// utils.CopyStructFields(t, &v)
// if v.NeedVerification != nil {
// t.NeedVerification = v.NeedVerification.Value
// }
// result = append(result, t)
// }
// return result
//}
//process application
// @Summary 处理加群消息
// @Description 处理加群消息
// @Tags 群组相关
// @ID ApplicationGroupResponse
// @Accept json
// @Param token header string true "im token"
// @Param req body api.ApplicationGroupResponseReq true "groupID为要处理的群ID <br> fromUserID为要处理的用户ID <br> handleMsg为处理结果信息 <br> handleResult为处理结果 1为同意加群 2为拒绝加群"
// @Produce json
// @Success 0 {object} api.ApplicationGroupResponseResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/group_application_response [post]
func ApplicationGroupResponse ( c * gin . Context ) {
params := api . ApplicationGroupResponseReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -426,13 +625,19 @@ func ApplicationGroupResponse(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "ApplicationGroupResponse args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
reply , err := client . GroupApplicationResponse ( context . Background ( ) , req )
if err != nil {
@ -446,6 +651,18 @@ func ApplicationGroupResponse(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 加入群聊
// @Description 加入群聊
// @Tags 群组相关
// @ID JoinGroup
// @Accept json
// @Param token header string true "im token"
// @Param req body api.JoinGroupReq true "reqMessage为申请进群信息<br>groupID为申请的群ID"
// @Produce json
// @Success 0 {object} api.JoinGroupResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/join_group [post]
func JoinGroup ( c * gin . Context ) {
params := api . JoinGroupReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -462,12 +679,18 @@ func JoinGroup(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "JoinGroup args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . JoinGroup ( context . Background ( ) , req )
@ -481,6 +704,18 @@ func JoinGroup(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 当前用户退出群聊
// @Description 当前用户退出群聊
// @Tags 群组相关
// @ID QuitGroup
// @Accept json
// @Param token header string true "im token"
// @Param req body api.QuitGroupReq true "groupID为要退出的群ID"
// @Produce json
// @Success 0 {object} api.QuitGroupResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/quit_group [post]
func QuitGroup ( c * gin . Context ) {
params := api . QuitGroupReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -497,13 +732,19 @@ func QuitGroup(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "QuitGroup args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . QuitGroup ( context . Background ( ) , req )
if err != nil {
@ -516,6 +757,18 @@ func QuitGroup(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 设置群信息
// @Description 设置群信息
// @Tags 群组相关
// @ID SetGroupInfo
// @Accept json
// @Param token header string true "im token"
// @Param req body api.SetGroupInfoReq true "groupID为要修改的群ID<br>groupName为新的群名称<br>notification为群介绍 <br> introduction为群公告 <br> needVerification为加群验证 0为申请需要同意 邀请直接进 1为所有人进群需要验证, 除了群主管理员邀请进群 2为直接进群"
// @Produce json
// @Success 0 {object} api.SetGroupInfoResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/set_group_info [post]
func SetGroupInfo ( c * gin . Context ) {
params := api . SetGroupInfoReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -523,23 +776,34 @@ func SetGroupInfo(c *gin.Context) {
c . JSON ( http . StatusBadRequest , gin . H { "errCode" : 400 , "errMsg" : err . Error ( ) } )
return
}
req := & rpc . SetGroupInfoReq { GroupInfo : & open_im_sdk . GroupInfo { } }
utils . CopyStructFields ( req . GroupInfo , & params )
req := & rpc . SetGroupInfoReq { GroupInfo ForSet : & open_im_sdk . GroupInfo ForSet { } }
utils . CopyStructFields ( req . GroupInfo ForSet , & params )
req . OperationID = params . OperationID
if params . NeedVerification != nil {
req . GroupInfoForSet . NeedVerification = & wrappers . Int32Value { Value : * params . NeedVerification }
log . NewInfo ( req . OperationID , "NeedVerification " , req . GroupInfoForSet . NeedVerification )
}
var ok bool
var errInfo string
ok , req . OpUserID , errInfo = token_verify . GetUserIDFromToken ( c . Request . Header . Get ( "token" ) , req . OperationID )
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "SetGroupInfo args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
RpcResp , err := client . SetGroupInfo ( context . Background ( ) , req )
if err != nil {
@ -552,6 +816,18 @@ func SetGroupInfo(c *gin.Context) {
log . NewInfo ( req . OperationID , "SetGroupInfo api return " , resp )
}
// @Summary 转让群主
// @Description 转让群主
// @Tags 群组相关
// @ID TransferGroupOwner
// @Accept json
// @Param token header string true "im token"
// @Param req body api.TransferGroupOwnerReq true "GroupID为要操作的群ID <br> oldOwnerUserID为老群主ID <br> newOwnerUserID为新群主ID"
// @Produce json
// @Success 0 {object} api.TransferGroupOwnerResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/transfer_group [post]
func TransferGroupOwner ( c * gin . Context ) {
params := api . TransferGroupOwnerReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -568,13 +844,19 @@ func TransferGroupOwner(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , "TransferGroupOwner args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
reply , err := client . TransferGroupOwner ( context . Background ( ) , req )
if err != nil {
@ -588,6 +870,18 @@ func TransferGroupOwner(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 解散群组
// @Description 解散群组
// @Tags 群组相关
// @ID DismissGroup
// @Accept json
// @Param token header string true "im token"
// @Param req body api.DismissGroupReq true "groupID为要解散的群组ID"
// @Produce json
// @Success 0 {object} api.DismissGroupResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/dismiss_group [post]
func DismissGroup ( c * gin . Context ) {
params := api . DismissGroupReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -604,13 +898,19 @@ func DismissGroup(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , utils . GetSelfFuncName ( ) , " args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
reply , err := client . DismissGroup ( context . Background ( ) , req )
if err != nil {
@ -624,6 +924,18 @@ func DismissGroup(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 禁言群成员
// @Description 禁言群成员
// @Tags 群组相关
// @ID MuteGroupMember
// @Accept json
// @Param token header string true "im token"
// @Param req body api.MuteGroupMemberReq true "groupID为群组ID <br> userID为要禁言的用户ID <br> mutedSeconds为禁言秒数"
// @Produce json
// @Success 0 {object} api.DismissGroupResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/mute_group_member [post]
func MuteGroupMember ( c * gin . Context ) {
params := api . MuteGroupMemberReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -640,13 +952,19 @@ func MuteGroupMember(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , utils . GetSelfFuncName ( ) , " api args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
reply , err := client . MuteGroupMember ( context . Background ( ) , req )
if err != nil {
@ -660,6 +978,18 @@ func MuteGroupMember(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 取消禁言群成员
// @Description 取消禁言群成员
// @Tags 群组相关
// @ID CancelMuteGroupMember
// @Accept json
// @Param token header string true "im token"
// @Param req body api.CancelMuteGroupMemberReq true "groupID为群组ID <br> userID为要取消禁言的用户ID"
// @Produce json
// @Success 0 {object} api.CancelMuteGroupMemberResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/cancel_mute_group_member [post]
func CancelMuteGroupMember ( c * gin . Context ) {
params := api . CancelMuteGroupMemberReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -676,13 +1006,19 @@ func CancelMuteGroupMember(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , utils . GetSelfFuncName ( ) , " api args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
reply , err := client . CancelMuteGroupMember ( context . Background ( ) , req )
if err != nil {
@ -696,6 +1032,18 @@ func CancelMuteGroupMember(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 禁言群组
// @Description 禁言群组
// @Tags 群组相关
// @ID MuteGroup
// @Accept json
// @Param token header string true "im token"
// @Param req body api.MuteGroupReq true "groupID为群组ID"
// @Produce json
// @Success 0 {object} api.MuteGroupResp
// @Failure 500 {object} api.MuteGroupResp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.MuteGroupResp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/mute_group [post]
func MuteGroup ( c * gin . Context ) {
params := api . MuteGroupReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -712,13 +1060,19 @@ func MuteGroup(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError, gin . H { "errCode" : 5 00, "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest, gin . H { "errCode" : 4 00, "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , utils . GetSelfFuncName ( ) , " api args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
reply , err := client . MuteGroup ( context . Background ( ) , req )
if err != nil {
@ -732,6 +1086,18 @@ func MuteGroup(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
// @Summary 取消禁言群组
// @Description 取消禁言群组
// @Tags 群组相关
// @ID CancelMuteGroup
// @Accept json
// @Param token header string true "im token"
// @Param req body api.CancelMuteGroupReq true "groupID为群组ID"
// @Produce json
// @Success 0 {object} api.CancelMuteGroupResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/cancel_mute_group [post]
func CancelMuteGroup ( c * gin . Context ) {
params := api . CancelMuteGroupReq { }
if err := c . BindJSON ( & params ) ; err != nil {
@ -748,13 +1114,19 @@ func CancelMuteGroup(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , utils . GetSelfFuncName ( ) , " api args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
reply , err := client . CancelMuteGroup ( context . Background ( ) , req )
if err != nil {
@ -786,13 +1158,19 @@ func SetGroupMemberNickname(c *gin.Context) {
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . Status InternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
c . JSON ( http . Status BadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
log . NewInfo ( req . OperationID , utils . GetSelfFuncName ( ) , " api args " , req . String ( ) )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName )
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
reply , err := client . SetGroupMemberNickname ( context . Background ( ) , req )
if err != nil {
@ -806,6 +1184,74 @@ func SetGroupMemberNickname(c *gin.Context) {
c . JSON ( http . StatusOK , resp )
}
func GetGroupMemberIDListFromCache ( c * gin . Context ) {
// @Summary 修改群成员信息
// @Description 修改群成员信息
// @Tags 群组相关
// @ID SetGroupMemberInfo
// @Accept json
// @Param token header string true "im token"
// @Param req body api.SetGroupMemberInfoReq true "除了operationID, userID, groupID其他参数可选<br>ex为拓展字段<br>faceURL为群头像<br>nickName为群昵称<br>roleLevel为群员角色,1为普通用户 2为群主 3为管理员"
// @Produce json
// @Success 0 {object} api.SetGroupMemberInfoResp
// @Failure 500 {object} api.Swagger500Resp "errCode为500 一般为服务器内部错误"
// @Failure 400 {object} api.Swagger400Resp "errCode为400 一般为参数输入错误, token未带上等"
// @Router /group/set_group_member_info [post]
func SetGroupMemberInfo ( c * gin . Context ) {
var (
req api . SetGroupMemberInfoReq
resp api . SetGroupMemberInfoResp
)
if err := c . BindJSON ( & req ) ; err != nil {
log . NewError ( "0" , "BindJSON failed " , err . Error ( ) )
c . JSON ( http . StatusBadRequest , gin . H { "errCode" : 400 , "errMsg" : err . Error ( ) } )
return
}
log . NewInfo ( req . OperationID , utils . GetSelfFuncName ( ) , req )
var opUserID string
ok , opUserID , errInfo := token_verify . GetUserIDFromToken ( c . Request . Header . Get ( "token" ) , req . OperationID )
if ! ok {
errMsg := req . OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c . Request . Header . Get ( "token" )
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusBadRequest , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
reqPb := & rpc . SetGroupMemberInfoReq {
GroupID : req . GroupID ,
UserID : req . UserID ,
OperationID : req . OperationID ,
OpUserID : opUserID ,
}
if req . Nickname != nil {
reqPb . Nickname = & wrappers . StringValue { Value : * req . Nickname }
}
if req . FaceURL != nil {
reqPb . FaceURL = & wrappers . StringValue { Value : * req . FaceURL }
}
if req . Ex != nil {
reqPb . Ex = & wrappers . StringValue { Value : * req . Ex }
}
if req . RoleLevel != nil {
reqPb . RoleLevel = & wrappers . Int32Value { Value : * req . RoleLevel }
}
etcdConn := getcdv3 . GetConn ( config . Config . Etcd . EtcdSchema , strings . Join ( config . Config . Etcd . EtcdAddr , "," ) , config . Config . RpcRegisterName . OpenImGroupName , req . OperationID )
if etcdConn == nil {
errMsg := req . OperationID + "getcdv3.GetConn == nil"
log . NewError ( req . OperationID , errMsg )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : errMsg } )
return
}
client := rpc . NewGroupClient ( etcdConn )
respPb , err := client . SetGroupMemberInfo ( context . Background ( ) , reqPb )
if err != nil {
log . NewError ( req . OperationID , utils . GetSelfFuncName ( ) , " failed " , err . Error ( ) )
c . JSON ( http . StatusInternalServerError , gin . H { "errCode" : 500 , "errMsg" : err . Error ( ) } )
return
}
resp . ErrMsg = respPb . CommonResp . ErrMsg
resp . ErrCode = respPb . CommonResp . ErrCode
log . NewInfo ( req . OperationID , utils . GetSelfFuncName ( ) , " api args " , resp )
c . JSON ( http . StatusOK , resp )
}