diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 1f2737bf1..3403e84bc 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -328,7 +328,7 @@ func ApplicationProcessedNotification(operationID, RecvID string, group immysql. // GroupMemberFullInfo InvitedUser = 3; // uint64 OperationTime = 4; //} -func MemberInvitedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, invitedUser immysql.GroupMember) { +func MemberInvitedNotification(operationID string, group immysql.Group, opUser immysql.User, invitedUser immysql.GroupMember) { } @@ -338,6 +338,10 @@ func MemberInvitedNotification(operationID string, group immysql.Group, opUser i // GroupMemberFullInfo KickedUser = 3; // uint64 OperationTime = 4; //} + +func MemberKickedNotificationID(operationID, GroupID, opUserID, kickedUserID, reason string) { + +} func MemberKickedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, KickedUser immysql.GroupMember) { } @@ -347,6 +351,11 @@ func MemberKickedNotification(operationID string, group immysql.Group, opUser im // GroupInfo Group = 2; // GroupMemberFullInfo OpUser = 3; //} +func GroupInfoChangedNotification(operationID string, changedType int32, groupID string, opUserID string) { + +} + +/* func GroupInfoChangedNotification(operationID string, changedType int32, group *immysql.Group, opUser *immysql.GroupMember) { var n NotificationMsg n.SendID = opUser.UserID @@ -369,13 +378,14 @@ func GroupInfoChangedNotification(operationID string, changedType int32, group * n.Content, _ = json.Marshal(tips) Notification(&n, false) } +*/ //message MemberLeaveTips{ // GroupInfo Group = 1; // GroupMemberFullInfo LeaverUser = 2; // uint64 OperationTime = 3; //} -func MemberLeaveNotification(operationID string, group *immysql.Group, leaverUser *immysql.GroupMember) { +func MemberLeaveNotification(operationID, groupID, leaverUserID string) { } diff --git a/internal/rpc/group/create_group.go b/internal/rpc/group/create_group.go deleted file mode 100644 index 8edc72885..000000000 --- a/internal/rpc/group/create_group.go +++ /dev/null @@ -1,150 +0,0 @@ -package group - -import ( - "Open_IM/internal/rpc/chat" - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbGroup "Open_IM/pkg/proto/group" - "Open_IM/pkg/utils" - "context" - "google.golang.org/grpc" - "net" - "strconv" - "strings" - "time" -) - -type groupServer struct { - rpcPort int - rpcRegisterName string - etcdSchema string - etcdAddr []string -} - -func NewGroupServer(port int) *groupServer { - log.NewPrivateLog("group") - return &groupServer{ - rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImGroupName, - etcdSchema: config.Config.Etcd.EtcdSchema, - etcdAddr: config.Config.Etcd.EtcdAddr, - } -} -func (s *groupServer) Run() { - log.Info("", "", "rpc group init....") - - ip := utils.ServerIP - registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) - //listener network - listener, err := net.Listen("tcp", registerAddress) - if err != nil { - log.InfoByArgs("listen network failed,err=%s", err.Error()) - return - } - log.Info("", "", "listen network success, address = %s", registerAddress) - defer listener.Close() - //grpc server - srv := grpc.NewServer() - defer srv.GracefulStop() - //Service registers with etcd - pbGroup.RegisterGroupServer(srv, s) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) - if err != nil { - log.ErrorByArgs("get etcd failed,err=%s", err.Error()) - return - } - err = srv.Serve(listener) - if err != nil { - log.ErrorByArgs("listen rpc_group error,err=%s", err.Error()) - return - } - log.Info("", "", "rpc create group init success") -} - -func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { - log.NewInfo(req.OperationID, "CreateGroup, args=%s", req.String()) - var ( - groupId string - ) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.NewError(req.OperationID, "ParseToken failed, ", err.Error(), req.String()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - //Time stamp + MD5 to generate group chat id - groupId = utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) - err = im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ex) - if err != nil { - log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), req.String()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - - isManagerFlag := 0 - tokenUid := claims.UID - - if utils.IsContain(tokenUid, config.Config.Manager.AppManagerUid) { - isManagerFlag = 1 - } - - us, err := im_mysql_model.FindUserByUID(claims.UID) - if err != nil { - log.Error("", req.OperationID, "find userInfo failed", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - - if isManagerFlag == 0 { - //Add the group owner to the group first, otherwise the group creation will fail - err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Nickname, us.FaceUrl, constant.GroupOwner) - if err != nil { - log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - - err = db.DB.AddGroupMember(groupId, claims.UID) - if err != nil { - log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, claims.UID) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - } - - //Binding group id and member id - for _, user := range req.MemberList { - us, err := im_mysql_model.FindUserByUID(user.Uid) - if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.Uid) - continue - } - err = im_mysql_model.InsertIntoGroupMember(groupId, user.Uid, us.Nickname, us.FaceUrl, user.SetRole) - if err != nil { - log.ErrorByArgs("InsertIntoGroupMember failed", user.Uid, groupId, err.Error()) - } - err = db.DB.AddGroupMember(groupId, user.Uid) - if err != nil { - log.Error("", "", "add mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) - } - } - - if isManagerFlag == 1 { - - } - group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) - if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) - return &pbGroup.CreateGroupResp{GroupID: groupId}, nil - } - memberList, err := im_mysql_model.FindGroupMemberListByGroupId(groupId) - if err != nil { - log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed ", err.Error(), groupId) - return &pbGroup.CreateGroupResp{GroupID: groupId}, nil - } - chat.GroupCreatedNotification(req.OperationID, us, group, memberList) - log.NewInfo(req.OperationID, "GroupCreatedNotification, rpc CreateGroup success return ", groupId) - - return &pbGroup.CreateGroupResp{GroupID: groupId}, nil -} diff --git a/internal/rpc/group/get_group_applicationList.go b/internal/rpc/group/get_group_applicationList.go deleted file mode 100644 index a08b32f8e..000000000 --- a/internal/rpc/group/get_group_applicationList.go +++ /dev/null @@ -1,21 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) GetGroupApplicationList(_ context.Context, pb *group.GetGroupApplicationListReq) (*group.GetGroupApplicationListResp, error) { - log.Info("", "", "rpc GetGroupApplicationList call start..., [pb: %s]", pb.String()) - - reply, err := im_mysql_model.GetGroupApplicationList(pb.UID) - if err != nil { - log.Error("", "", "rpc GetGroupApplicationList call..., im_mysql_model.GetGroupApplicationList fail [uid: %s] [err: %s]", pb.UID, err.Error()) - return &group.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil - } - log.Info("", "", "rpc GetGroupApplicationList call..., im_mysql_model.GetGroupApplicationList") - - return reply, nil -} diff --git a/internal/rpc/group/get_groups_info.go b/internal/rpc/group/get_groups_info.go deleted file mode 100644 index f0d952e94..000000000 --- a/internal/rpc/group/get_groups_info.go +++ /dev/null @@ -1,42 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbGroup "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsInfoReq) (*pbGroup.GetGroupsInfoResp, error) { - log.Info(req.Token, req.OperationID, "rpc get group info is server,args=%s", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupsInfoResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.Info("", req.OperationID, "args:", req.GroupIDList, claims.UID) - groupsInfoList := make([]*pbGroup.GroupInfo, 0) - for _, groupID := range req.GroupIDList { - groupInfoFromMysql, err := im_mysql_model.FindGroupInfoByGroupId(groupID) - if err != nil { - log.Error(req.Token, req.OperationID, "find group info failed,err=%s", err.Error()) - continue - } - var groupInfo pbGroup.GroupInfo - groupInfo.GroupId = groupID - groupInfo.GroupName = groupInfoFromMysql.Name - groupInfo.Introduction = groupInfoFromMysql.Introduction - groupInfo.Notification = groupInfoFromMysql.Notification - groupInfo.FaceUrl = groupInfoFromMysql.FaceUrl - groupInfo.OwnerId = im_mysql_model.GetGroupOwnerByGroupId(groupID) - groupInfo.MemberCount = uint32(im_mysql_model.GetGroupMemberNumByGroupId(groupID)) - groupInfo.CreateTime = uint64(groupInfoFromMysql.CreateTime.Unix()) - - groupsInfoList = append(groupsInfoList, &groupInfo) - } - log.Info(req.Token, req.OperationID, "rpc get groupsInfo success return") - return &pbGroup.GetGroupsInfoResp{Data: groupsInfoList}, nil -} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e5b7cfc7d..bd8d3dd86 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1,50 +1,183 @@ package group import ( - "Open_IM/internal/push/content_struct" - "Open_IM/internal/push/logic" + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - "Open_IM/pkg/common/token_verify" - pbChat "Open_IM/pkg/proto/chat" - "encoding/json" - + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" pbGroup "Open_IM/pkg/proto/group" "Open_IM/pkg/utils" "context" - + "encoding/json" "fmt" + "google.golang.org/grpc" + "net" + "strconv" + "strings" + "time" ) +type groupServer struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func NewGroupServer(port int) *groupServer { + log.NewPrivateLog("group") + return &groupServer{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImGroupName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} +func (s *groupServer) Run() { + log.Info("", "", "rpc group init....") + + ip := utils.ServerIP + registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) + //listener network + listener, err := net.Listen("tcp", registerAddress) + if err != nil { + log.InfoByArgs("listen network failed,err=%s", err.Error()) + return + } + log.Info("", "", "listen network success, address = %s", registerAddress) + defer listener.Close() + //grpc server + srv := grpc.NewServer() + defer srv.GracefulStop() + //Service registers with etcd + pbGroup.RegisterGroupServer(srv, s) + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) + if err != nil { + log.ErrorByArgs("get etcd failed,err=%s", err.Error()) + return + } + err = srv.Serve(listener) + if err != nil { + log.ErrorByArgs("listen rpc_group error,err=%s", err.Error()) + return + } + log.Info("", "", "rpc create group init success") +} + +func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { + log.NewInfo(req.OperationID, "CreateGroup, args=%s", req.String()) + var ( + groupId string + ) + //Parse token, to find current user information + claims, err := token_verify.ParseToken(req.Token) + if err != nil { + log.NewError(req.OperationID, "ParseToken failed, ", err.Error(), req.String()) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + //Time stamp + MD5 to generate group chat id + groupId = utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) + err = im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) + if err != nil { + log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), req.String()) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + + isManagerFlag := 0 + tokenUid := claims.UID + + if utils.IsContain(tokenUid, config.Config.Manager.AppManagerUid) { + isManagerFlag = 1 + } + + us, err := im_mysql_model.FindUserByUID(claims.UID) + if err != nil { + log.Error("", req.OperationID, "find userInfo failed", err.Error()) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + + if isManagerFlag == 0 { + //Add the group owner to the group first, otherwise the group creation will fail + err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Nickname, us.FaceUrl, constant.GroupOwner) + if err != nil { + log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error()) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + + err = db.DB.AddGroupMember(groupId, claims.UID) + if err != nil { + log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, claims.UID) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + } + + //Binding group id and member id + for _, user := range req.MemberList { + us, err := im_mysql_model.FindUserByUID(user.Uid) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.Uid) + continue + } + err = im_mysql_model.InsertIntoGroupMember(groupId, user.Uid, us.Nickname, us.FaceUrl, user.SetRole) + if err != nil { + log.ErrorByArgs("InsertIntoGroupMember failed", user.Uid, groupId, err.Error()) + } + err = db.DB.AddGroupMember(groupId, user.Uid) + if err != nil { + log.Error("", "", "add mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) + } + } + + if isManagerFlag == 1 { + + } + group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil + } + memberList, err := im_mysql_model.FindGroupMemberListByGroupId(groupId) + if err != nil { + log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed ", err.Error(), groupId) + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil + } + chat.GroupCreatedNotification(req.OperationID, us, group, memberList) + log.NewInfo(req.OperationID, "GroupCreatedNotification, rpc CreateGroup success return ", groupId) + + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil +} + func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJoinedGroupListReq) (*pbGroup.GetJoinedGroupListResp, error) { claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetJoinedGroupListResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(claims.UID) if err != nil { log.Error(claims.UID, req.OperationID, "GetJoinedGroupIdListByMemberId failed, err: ", err.Error()) - return &pbGroup.GetJoinedGroupListResp{ErrorCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil + return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil } var resp pbGroup.GetJoinedGroupListResp for _, v := range joinedGroupList { var groupNode pbGroup.GroupInfo - num := imdb.GetGroupMemberNumByGroupId(v.GroupId) - owner := imdb.GetGroupOwnerByGroupId(v.GroupId) - group, err := imdb.FindGroupInfoByGroupId(v.GroupId) + num := imdb.GetGroupMemberNumByGroupId(v.GroupID) + owner := imdb.GetGroupOwnerByGroupId(v.GroupID) + group, err := imdb.FindGroupInfoByGroupId(v.GroupID) if num > 0 && owner != "" && err == nil { - groupNode.GroupId = v.GroupId + groupNode.GroupId = v.GroupID groupNode.FaceUrl = group.FaceUrl groupNode.CreateTime = uint64(group.CreateTime.Unix()) - groupNode.GroupName = group.Name + groupNode.GroupName = group.GroupName groupNode.Introduction = group.Introduction groupNode.Notification = group.Notification groupNode.OwnerId = owner @@ -53,28 +186,21 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo } log.Info(claims.UID, req.OperationID, "member num: ", num, "owner: ", owner) } - resp.ErrorCode = 0 + resp.ErrCode = 0 return &resp, nil } func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.InviteUserToGroupReq) (*pbGroup.InviteUserToGroupResp, error) { - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.InviteUserToGroupResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) - // if !imdb.IsExistGroupMember(req.GroupID, claims.UID) && claims.UID != config.Config.AppManagerUid - - if !imdb.IsExistGroupMember(req.GroupID, claims.UID) && !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - log.Error(req.Token, req.OperationID, "err= invite user not in group") - return &pbGroup.InviteUserToGroupResp{ErrorCode: constant.ErrAccess.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil + log.NewInfo(req.OperationID, "InviteUserToGroup args: ", req.String()) + if !imdb.IsExistGroupMember(req.GroupID, req.OpUserID) && !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { + log.NewError(req.OperationID, "no permission InviteUserToGroup ", req.GroupID) + return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } groupInfoFromMysql, err := imdb.FindGroupInfoByGroupId(req.GroupID) if err != nil || groupInfoFromMysql == nil { - log.NewError(req.OperationID, "get group info error", req.GroupID, req.UidList) - return &pbGroup.InviteUserToGroupResp{ErrorCode: constant.ErrAccess.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed", req.GroupID) + return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } // @@ -82,12 +208,10 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite //to user: invite: invited //to application var resp pbGroup.InviteUserToGroupResp - /* - fromUserInfo, err := imdb.FindUserByUID(claims.UID) - if err != nil { - log.Error(claims.UID, req.OperationID, "FindUserByUID failed, err: ", err.Error()) - return &pbGroup.InviteUserToGroupResp{ErrorCode: config.ErrParam.ErrCode, ErrorMsg: config.ErrParam.ErrMsg}, nil - }*/ + opUser, err := imdb.FindUserByUID(req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) + } var nicknameList string for _, v := range req.UidList { var resultNode pbGroup.Id2Result @@ -95,58 +219,42 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite resultNode.Result = 0 toUserInfo, err := imdb.FindUserByUID(v) if err != nil { - log.Error(v, req.OperationID, "FindUserByUID failed, err: ", err.Error()) + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error()) resultNode.Result = -1 resp.Id2Result = append(resp.Id2Result, &resultNode) continue } if imdb.IsExistGroupMember(req.GroupID, v) { - log.Error(v, req.OperationID, "user has already in group") + log.NewError(req.OperationID, "ExistGroupMember failed ", req.GroupID, v) resultNode.Result = -1 resp.Id2Result = append(resp.Id2Result, &resultNode) continue } - err = imdb.InsertGroupMember(req.GroupID, toUserInfo.UID, toUserInfo.Name, toUserInfo.Icon, 0) + err = imdb.InsertGroupMember(req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl, 0) if err != nil { - log.Error(v, req.OperationID, "InsertGroupMember failed, ", err.Error(), "params: ", - req.GroupID, toUserInfo.UID, toUserInfo.Name, toUserInfo.Icon) + log.NewError(req.OperationID, "InsertGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl) resultNode.Result = -1 resp.Id2Result = append(resp.Id2Result, &resultNode) continue } - err = db.DB.AddGroupMember(req.GroupID, toUserInfo.UID) + member, err := imdb.GetMemberInfoById(req.GroupID, v) + if groupInfoFromMysql != nil && opUser != nil && member != nil { + chat.MemberInvitedNotification(req.OperationID, *groupInfoFromMysql, *opUser, *member) + } else { + log.NewError(req.OperationID, "args failed, nil ", groupInfoFromMysql, opUser, member) + } + + err = db.DB.AddGroupMember(req.GroupID, toUserInfo.UserID) if err != nil { log.Error("", "", "add mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) } - nicknameList = nicknameList + toUserInfo.Name + " " + nicknameList = nicknameList + toUserInfo.Nickname + " " resp.Id2Result = append(resp.Id2Result, &resultNode) } - resp.ErrorCode = 0 - resp.ErrorMsg = "ok" - - //if claims.UID == config.Config.AppManagerUid - if utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - m, _ := imdb.FindUserByUID(claims.UID) - var iu inviteUserToGroupReq - iu.GroupID = req.GroupID - iu.OperationID = req.OperationID - iu.Reason = req.Reason - iu.UidList = req.UidList - n := content_struct.NotificationContent{1, nicknameList + " invited into the group chat by " + m.Name, iu.ContentToString()} - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: req.GroupID, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampByNano(), - MsgFrom: constant.UserMsgType, - ContentType: constant.InviteUserToGroupTip, - SessionType: constant.GroupChatType, - OperationID: req.OperationID, - }) - } + resp.ErrCode = 0 return &resp, nil } @@ -164,20 +272,12 @@ func (c *inviteUserToGroupReq) ContentToString() string { } func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGroupAllMemberReq) (*pbGroup.GetGroupAllMemberResp, error) { - //claims, err := utils.ParseToken(req.Token) - //if err != nil { - // log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - // if req.Token != config.Config.Secret { - // return &pbGroup.GetGroupAllMemberResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil - // } - //} - var resp pbGroup.GetGroupAllMemberResp - resp.ErrorCode = 0 + resp.ErrCode = 0 memberList, err := imdb.FindGroupMemberListByGroupId(req.GroupID) if err != nil { - resp.ErrorCode = constant.ErrDb.ErrCode - resp.ErrorMsg = err.Error() + resp.ErrCode = constant.ErrDb.ErrCode + resp.ErrMsg = err.Error() log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed,", err.Error(), req.GroupID) return &resp, nil } @@ -186,13 +286,13 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro var node pbGroup.GroupMemberFullInfo node.Role = v.AdministratorLevel node.NickName = v.NickName - node.UserId = v.Uid - node.FaceUrl = v.UserGroupFaceUrl + node.UserId = v.UserID + node.FaceUrl = v.FaceUrl node.JoinTime = uint64(v.JoinTime.Unix()) resp.MemberList = append(resp.MemberList, &node) } - resp.ErrorCode = 0 + resp.ErrCode = 0 return &resp, nil } @@ -200,16 +300,16 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupMemberListResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetGroupMemberListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil } // log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) fmt.Println("req: ", req.GroupID) var resp pbGroup.GetGroupMemberListResp - resp.ErrorCode = 0 + resp.ErrCode = 0 memberList, err := imdb.GetGroupMemberByGroupId(req.GroupID, req.Filter, req.NextSeq, 30) if err != nil { - resp.ErrorCode = constant.ErrDb.ErrCode - resp.ErrorMsg = err.Error() + resp.ErrCode = constant.ErrDb.ErrCode + resp.ErrMsg = err.Error() log.Error(claims.UID, req.OperationID, "GetGroupMemberByGroupId failed, ", err.Error(), "params: ", req.GroupID, req.Filter, req.NextSeq) return &resp, nil } @@ -218,7 +318,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr var node pbGroup.GroupMemberFullInfo node.Role = v.AdministratorLevel node.NickName = v.NickName - node.UserId = v.Uid + node.UserId = v.UserID // node.FaceUrl = node.JoinTime = uint64(v.JoinTime.Unix()) resp.MemberList = append(resp.MemberList, &node) @@ -230,7 +330,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr resp.NextSeq = req.NextSeq + int32(len(memberList)) } - resp.ErrorCode = 0 + resp.ErrCode = 0 return &resp, nil } @@ -257,54 +357,51 @@ func (c *kickGroupMemberApiReq) ContentToString() string { } func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) { - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) - + log.NewInfo(req.OperationID, "KickGroupMember failed ", req.String()) ownerList, err := imdb.GetOwnerManagerByGroupId(req.GroupID) if err != nil { - log.Error(claims.UID, req.OperationID, req.GroupID, "GetOwnerManagerByGroupId, ", err.Error()) - return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil + log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) + return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrParam.ErrCode, ErrMsg: constant.ErrParam.ErrMsg}, nil } //op is group owner? var flag = 0 for _, v := range ownerList { - if v.Uid == claims.UID { + if v.UserID == req.OpUserID { flag = 1 + log.NewInfo(req.OperationID, "is group owner ", req.OpUserID, req.GroupID) break } } + if flag != 1 { - // if claims.UID == config.Config.AppManagerUid { - if utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { + if utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { flag = 1 + log.NewInfo(req.OperationID, "is app manager ", req.OpUserID, req.GroupID) } } if flag != 1 { - log.Error(claims.UID, req.OperationID, "no access kick") - return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrAccess.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil + log.NewError(req.OperationID, "failed, no access kick") + return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } if len(req.UidListInfo) == 0 { - log.Error(claims.UID, req.OperationID, "kick list 0") - return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil + log.NewError(req.OperationID, "failed, kick list 0") + return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrParam.ErrCode, ErrMsg: constant.ErrParam.ErrMsg}, nil } + //remove var resp pbGroup.KickGroupMemberResp for _, v := range req.UidListInfo { //owner cant kicked - if v.UserId == claims.UID { - log.Error(claims.UID, req.OperationID, v.UserId, "cant kick owner") + if v.UserId == req.OpUserID { + log.NewError(req.OperationID, v.UserId, "failed, can't kick owner ", req.OpUserID) resp.Id2Result = append(resp.Id2Result, &pbGroup.Id2Result{UId: v.UserId, Result: -1}) continue } err := imdb.RemoveGroupMember(req.GroupID, v.UserId) if err != nil { - log.Error(claims.UID, req.OperationID, v.UserId, req.GroupID, "RemoveGroupMember failed ", err.Error()) + log.NewError(req.OperationID, "RemoveGroupMember failed ", err.Error(), req.GroupID, v.UserId) resp.Id2Result = append(resp.Id2Result, &pbGroup.Id2Result{UId: v.UserId, Result: -1}) } else { resp.Id2Result = append(resp.Id2Result, &pbGroup.Id2Result{UId: v.UserId, Result: 0}) @@ -312,53 +409,15 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou err = db.DB.DelGroupMember(req.GroupID, v.UserId) if err != nil { - log.Error("", "", "delete mongo group member failed, db.DB.DelGroupMember fail [err: %s]", err.Error()) + log.NewError(req.OperationID, "DelGroupMember failed ", err.Error(), req.GroupID, v.UserId) } - } - var kq kickGroupMemberApiReq - kq.GroupID = req.GroupID - kq.OperationID = req.OperationID - kq.Reason = req.Reason - - var gf groupMemberFullInfo for _, v := range req.UidListInfo { - gf.UserId = v.UserId - gf.GroupId = req.GroupID - kq.UidListInfo = append(kq.UidListInfo, gf) + chat.MemberKickedNotificationID(req.OperationID, req.GroupID, req.OpUserID, v.UserId, req.Reason) } - n := content_struct.NotificationContent{1, req.GroupID, kq.ContentToString()} - - if utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - log.Info("", req.OperationID, claims.UID, req.GroupID) - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: req.GroupID, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampByNano(), - MsgFrom: constant.UserMsgType, - ContentType: constant.KickGroupMemberTip, - SessionType: constant.GroupChatType, - OperationID: req.OperationID, - }) - - for _, v := range req.UidListInfo { - log.Info("", req.OperationID, claims.UID, v.UserId) - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: v.UserId, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampBySecond(), - MsgFrom: constant.UserMsgType, - ContentType: constant.KickGroupMemberTip, - SessionType: constant.SingleChatType, - OperationID: req.OperationID, - }) - } - } - resp.ErrorCode = 0 + resp.ErrCode = 0 return &resp, nil } @@ -366,7 +425,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupMembersInfoResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetGroupMembersInfoResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil } log.InfoByKv(claims.UID, req.OperationID, "param: ", req.MemberList) var resp pbGroup.GetGroupMembersInfoResp @@ -392,6 +451,234 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG } resp.MemberList = append(resp.MemberList, &memberNode) } - resp.ErrorCode = 0 + resp.ErrCode = 0 return &resp, nil } + +func (s *groupServer) GetGroupApplicationList(_ context.Context, pb *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) { + log.Info("", "", "rpc GetGroupApplicationList call start..., [pb: %s]", pb.String()) + + reply, err := im_mysql_model.GetGroupApplicationList(pb.OpUserID) + if err != nil { + return &pbGroup.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil + } + log.Info("", "", "rpc GetGroupApplicationList call..., im_mysql_model.GetGroupApplicationList") + + return reply, nil +} + +func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsInfoReq) (*pbGroup.GetGroupsInfoResp, error) { + log.Info(req.Token, req.OperationID, "rpc get group info is server,args=%s", req.String()) + //Parse token, to find current user information + claims, err := token_verify.ParseToken(req.Token) + if err != nil { + log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) + return &pbGroup.GetGroupsInfoResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + log.Info("", req.OperationID, "args:", req.GroupIDList, claims.UID) + groupsInfoList := make([]*pbGroup.GroupInfo, 0) + for _, groupID := range req.GroupIDList { + groupInfoFromMysql, err := im_mysql_model.FindGroupInfoByGroupId(groupID) + if err != nil { + log.Error(req.Token, req.OperationID, "find group info failed,err=%s", err.Error()) + continue + } + var groupInfo pbGroup.GroupInfo + groupInfo.GroupId = groupID + groupInfo.GroupName = groupInfoFromMysql.GroupName + groupInfo.Introduction = groupInfoFromMysql.Introduction + groupInfo.Notification = groupInfoFromMysql.Notification + groupInfo.FaceUrl = groupInfoFromMysql.FaceUrl + groupInfo.OwnerId = im_mysql_model.GetGroupOwnerByGroupId(groupID) + groupInfo.MemberCount = uint32(im_mysql_model.GetGroupMemberNumByGroupId(groupID)) + groupInfo.CreateTime = uint64(groupInfoFromMysql.CreateTime.Unix()) + + groupsInfoList = append(groupsInfoList, &groupInfo) + } + log.Info(req.Token, req.OperationID, "rpc get groupsInfo success return") + return &pbGroup.GetGroupsInfoResp{Data: groupsInfoList}, nil +} + +func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) { + log.NewInfo(pb.OperationID, "GroupApplicationResponse args: ", pb.String()) + reply, err := imdb.GroupApplicationResponse(pb) + if err != nil { + log.NewError(pb.OperationID, "GroupApplicationResponse failed ", err.Error(), pb.String()) + return &pbGroup.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: err.Error()}, nil + } + + if pb.HandleResult == 1 { + if pb.ToUserID == "0" { + err = db.DB.AddGroupMember(pb.GroupID, pb.FromUserID) + if err != nil { + log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) + return nil, err + } + } else { + err = db.DB.AddGroupMember(pb.GroupID, pb.ToUserID) + if err != nil { + log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) + return nil, err + } + } + } + if pb.ToUserID == "0" { + group, err := imdb.FindGroupInfoByGroupId(pb.GroupID) + if err != nil { + log.NewError(pb.OperationID, "FindGroupInfoByGroupId failed ", pb.GroupID) + return reply, nil + } + member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OpUserID) + if err != nil { + log.NewError(pb.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", pb.GroupID, pb.OpUserID) + return reply, nil + } + chat.ApplicationProcessedNotification(pb.OperationID, pb.FromUserID, *group, *member, pb.HandleResult, pb.HandledMsg) + if pb.HandleResult == 1 { + entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.FromUserID) + if err != nil { + log.NewError(pb.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), pb.GroupID, pb.FromUserID) + return reply, nil + } + chat.MemberEnterNotification(pb.OperationID, group, entrantUser) + } + } else { + log.NewError(pb.OperationID, "args failed ", pb.String()) + } + + log.NewInfo(pb.OperationID, "rpc GroupApplicationResponse ok ", reply) + return reply, nil +} + +func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { + log.NewInfo(req.Token, req.OperationID, "JoinGroup args ", req.String()) + //Parse token, to find current user information + claims, err := token_verify.ParseToken(req.Token) + if err != nil { + log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String()) + return &pbGroup.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + applicationUserInfo, err := im_mysql_model.FindUserByUID(claims.UID) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed", err.Error(), claims.UID) + return &pbGroup.CommonResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil + } + + _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, claims.UID) + if err == nil { + err = im_mysql_model.DelGroupRequest(req.GroupID, claims.UID, "0") + } + + if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { + log.Error(req.Token, req.OperationID, "Insert into group request failed,er=%s", err.Error()) + return &pbGroup.CommonResp{ErrCode: constant.ErrJoinGroupApplication.ErrCode, ErrMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil + } + + memberList, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupOwner) + if len(memberList) == 0 { + log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) + return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil + } + group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) + return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil + } + chat.ReceiveJoinApplicationNotification(req.OperationID, memberList[0].UserID, applicationUserInfo, group) + + log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return") + return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil +} + +func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.CommonResp, error) { + log.NewError("QuitGroup args ", req.String()) + + _, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed", err.Error(), req.GroupID, req.OpUserID) + return &pbGroup.CommonResp{ErrCode: constant.ErrQuitGroup.ErrCode, ErrMsg: constant.ErrQuitGroup.ErrMsg}, nil + } + + err = im_mysql_model.DeleteGroupMemberByGroupIdAndUserId(req.GroupID, req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "DeleteGroupMemberByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.OpUserID) + return &pbGroup.CommonResp{ErrCode: constant.ErrQuitGroup.ErrCode, ErrMsg: constant.ErrQuitGroup.ErrMsg}, nil + } + + err = db.DB.DelGroupMember(req.GroupID, req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "DelGroupMember failed ", req.GroupID, req.OpUserID) + // return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil + } + + chat.MemberLeaveNotification(req.OperationID, req.GroupID, req.OpUserID) + log.NewInfo(req.OperationID, "rpc quit group is success return") + return &pbGroup.CommonResp{}, nil +} + +func hasAccess(req *pbGroup.SetGroupInfoReq) bool { + if utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { + return true + } + groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed, ", err.Error(), req.GroupID, req.OpUserID) + return false + + } + if groupUserInfo.AdministratorLevel == constant.OrdinaryMember { + return true + } +} + +func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.CommonResp, error) { + log.NewInfo(req.OperationID, "SetGroupInfo args ", req.String()) + if !hasAccess(req) { + log.NewError(req.OperationID, "no access ") + return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil + } + + group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupID) + return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil + } + + ////bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl + var changedType int32 + if group.GroupName != req.GroupName && req.GroupName != "" { + changedType = 1 + } + if group.Notification != req.Notification && req.Notification != "" { + changedType = changedType | (1 << 1) + } + if group.Introduction != req.Introduction && req.Introduction != "" { + changedType = changedType | (1 << 2) + } + if group.FaceUrl != req.FaceUrl && req.FaceUrl != "" { + changedType = changedType | (1 << 3) + } + //only administrators can set group information + if err = im_mysql_model.SetGroupInfo(req.GroupID, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, ""); err != nil { + return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrSetGroupInfo.ErrMsg}, nil + } + + if changedType != 0 { + chat.GroupInfoChangedNotification(req.OperationID, changedType, req.GroupID, req.OpUserID) + } + + return &pbGroup.CommonResp{}, nil +} + +func (s *groupServer) TransferGroupOwner(_ context.Context, pb *pbGroup.TransferGroupOwnerReq) (*pbGroup.TransferGroupOwnerResp, error) { + log.Info("", "", "rpc TransferGroupOwner call start..., [pb: %s]", pb.String()) + + reply, err := im_mysql_model.TransferGroupOwner(pb) + if err != nil { + log.Error("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner fail [pb: %s] [err: %s]", pb.String(), err.Error()) + return nil, err + } + log.Info("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner") + + return reply, nil +} diff --git a/internal/rpc/group/group_application_response.go b/internal/rpc/group/group_application_response.go deleted file mode 100644 index e51339575..000000000 --- a/internal/rpc/group/group_application_response.go +++ /dev/null @@ -1,56 +0,0 @@ -package group - -import ( - "Open_IM/internal/rpc/chat" - "Open_IM/pkg/common/db" - immsql "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *group.GroupApplicationResponseReq) (*group.GroupApplicationResponseResp, error) { - log.NewInfo(pb.OperationID, "GroupApplicationResponse args: ", pb.String()) - reply, err := immsql.GroupApplicationResponse(pb) - if err != nil { - log.NewError(pb.OperationID, "GroupApplicationResponse failed ", err.Error(), pb) - return &group.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: err.Error()}, nil - } - - if pb.HandleResult == 1 { - if pb.ToUserID == "0" { - err = db.DB.AddGroupMember(pb.GroupID, pb.FromUserID) - if err != nil { - log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return nil, err - } - } else { - err = db.DB.AddGroupMember(pb.GroupID, pb.ToUserID) - if err != nil { - log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return nil, err - } - } - } - if pb.ToUserID == "0" { - group, err := immsql.FindGroupInfoByGroupId(pb.GroupID) - if err != nil { - - } - member, err := immsql.FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OwnerID) - if err != nil { - - } - chat.ApplicationProcessedNotification(pb.OperationID, pb.FromUserID, *group, *member, pb.HandleResult, pb.HandledMsg) - } else { - - } - - if pb.HandleResult == 1 { - - } - - log.NewInfo(pb.OperationID, "rpc GroupApplicationResponse ok ", reply) - - return reply, nil -} diff --git a/internal/rpc/group/join_group.go b/internal/rpc/group/join_group.go deleted file mode 100644 index 5a26181dd..000000000 --- a/internal/rpc/group/join_group.go +++ /dev/null @@ -1,51 +0,0 @@ -package group - -import ( - "Open_IM/internal/rpc/chat" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbGroup "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { - log.NewInfo(req.Token, req.OperationID, "JoinGroup args ", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - applicationUserInfo, err := im_mysql_model.FindUserByUID(claims.UID) - if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed", err.Error(), claims.UID) - return &pbGroup.CommonResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil - } - - _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, claims.UID) - if err == nil { - err = im_mysql_model.DelGroupRequest(req.GroupID, claims.UID, "0") - } - - if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { - log.Error(req.Token, req.OperationID, "Insert into group request failed,er=%s", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrJoinGroupApplication.ErrCode, ErrorMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil - } - - memberList, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupOwner) - if len(memberList) == 0 { - log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) - return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil - } - group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) - if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) - return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil - } - chat.ReceiveJoinApplicationNotification(req.OperationID, memberList[0].UserID, applicationUserInfo, group) - - log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return") - return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil -} diff --git a/internal/rpc/group/quit_group.go b/internal/rpc/group/quit_group.go deleted file mode 100644 index e77a34009..000000000 --- a/internal/rpc/group/quit_group.go +++ /dev/null @@ -1,55 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbGroup "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.CommonResp, error) { - log.InfoByArgs("rpc quit group is server,args:", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.InfoByKv("args:", req.OperationID, req.GetGroupID(), claims.UID) - //Check to see whether there is a user in the group. - _, err = im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, claims.UID) - if err != nil { - log.Error(req.Token, req.OperationID, "no such group or you are not in the group,err=%s", err.Error(), req.OperationID, req.GroupID, claims.UID) - return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil - } - //After the user's verification is successful, user will quit the group chat. - err = im_mysql_model.DeleteGroupMemberByGroupIdAndUserId(req.GroupID, claims.UID) - if err != nil { - log.ErrorByArgs("this user exit the group failed,err=%s", err.Error(), req.OperationID, req.GroupID, claims.UID) - return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil - } - - err = db.DB.DelGroupMember(req.GroupID, claims.UID) - if err != nil { - log.Error("", "", "delete mongo group member failed, db.DB.DelGroupMember fail [err: %s]", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil - } - ////Push message when quit group chat - //jsonInfo, _ := json.Marshal(req) - //logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - // SendID: claims.UID, - // RecvID: req.GroupID, - // Content: string(jsonInfo), - // SendTime: utils.GetCurrentTimestampBySecond(), - // MsgFrom: constant.SysMsgType, - // ContentType: constant.QuitGroupTip, - // SessionType: constant.GroupChatType, - // OperationID: req.OperationID, - //}) - log.Info(req.Token, req.OperationID, "rpc quit group is success return") - - return &pbGroup.CommonResp{}, nil -} diff --git a/internal/rpc/group/set_group_info.go b/internal/rpc/group/set_group_info.go deleted file mode 100644 index 55532a04e..000000000 --- a/internal/rpc/group/set_group_info.go +++ /dev/null @@ -1,60 +0,0 @@ -package group - -import ( - "Open_IM/internal/rpc/chat" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbGroup "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc set group info is server,args=%s", req.String()) - - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - - groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, claims.UID) - if err != nil { - log.Error("", req.OperationID, "your are not in the group,can not change this group info,err=%s", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil - } - if groupUserInfo.AdministratorLevel == constant.OrdinaryMember { - return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil - } - group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) - if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupID) - return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil - } - ////bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl - var changedType int32 - if group.GroupName != req.GroupName && req.GroupName != "" { - changedType = 1 - } - if group.Notification != req.Notification && req.Notification != "" { - changedType = changedType | (1 << 1) - } - if group.Introduction != req.Introduction && req.Introduction != "" { - changedType = changedType | (1 << 2) - } - if group.FaceUrl != req.FaceUrl && req.FaceUrl != "" { - changedType = changedType | (1 << 3) - } - //only administrators can set group information - if err = im_mysql_model.SetGroupInfo(req.GroupID, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, ""); err != nil { - return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil - } - - if changedType != 0 { - chat.GroupInfoChangedNotification(req.OperationID, claims.UID, changedType, group, groupUserInfo) - } - - return &pbGroup.CommonResp{}, nil -} diff --git a/internal/rpc/group/transfer_group_owner.go b/internal/rpc/group/transfer_group_owner.go deleted file mode 100644 index 4595fa1f1..000000000 --- a/internal/rpc/group/transfer_group_owner.go +++ /dev/null @@ -1,21 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) TransferGroupOwner(_ context.Context, pb *group.TransferGroupOwnerReq) (*group.TransferGroupOwnerResp, error) { - log.Info("", "", "rpc TransferGroupOwner call start..., [pb: %s]", pb.String()) - - reply, err := im_mysql_model.TransferGroupOwner(pb) - if err != nil { - log.Error("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return nil, err - } - log.Info("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner") - - return reply, nil -} diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index fae312019..bc8371177 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -24,8 +24,8 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type CommonResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -35,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{0} + return fileDescriptor_group_ac6850665f72c22b, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -55,16 +55,16 @@ func (m *CommonResp) XXX_DiscardUnknown() { var xxx_messageInfo_CommonResp proto.InternalMessageInfo -func (m *CommonResp) GetErrorCode() int32 { +func (m *CommonResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *CommonResp) GetErrorMsg() string { +func (m *CommonResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -77,7 +77,8 @@ type CreateGroupReq struct { FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + OpUserID string `protobuf:"bytes,8,opt,name=OpUserID" json:"OpUserID,omitempty"` + Ext string `protobuf:"bytes,9,opt,name=Ext" json:"Ext,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -87,7 +88,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{1} + return fileDescriptor_group_ac6850665f72c22b, []int{1} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -156,9 +157,16 @@ func (m *CreateGroupReq) GetOperationID() string { return "" } -func (m *CreateGroupReq) GetEx() string { +func (m *CreateGroupReq) GetOpUserID() string { if m != nil { - return m.Ex + return m.OpUserID + } + return "" +} + +func (m *CreateGroupReq) GetExt() string { + if m != nil { + return m.Ext } return "" } @@ -175,7 +183,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{2} + return fileDescriptor_group_ac6850665f72c22b, []int{2} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -210,8 +218,8 @@ func (m *GroupAddMemberInfo) GetSetRole() int32 { } type CreateGroupResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -222,7 +230,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{3} + return fileDescriptor_group_ac6850665f72c22b, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -242,16 +250,16 @@ func (m *CreateGroupResp) XXX_DiscardUnknown() { var xxx_messageInfo_CreateGroupResp proto.InternalMessageInfo -func (m *CreateGroupResp) GetErrorCode() int32 { +func (m *CreateGroupResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *CreateGroupResp) GetErrorMsg() string { +func (m *CreateGroupResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -267,6 +275,7 @@ type GetGroupsInfoReq struct { GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList" json:"groupIDList,omitempty"` Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -276,7 +285,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{4} + return fileDescriptor_group_ac6850665f72c22b, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -317,9 +326,16 @@ func (m *GetGroupsInfoReq) GetOperationID() string { return "" } +func (m *GetGroupsInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupsInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` Data []*GroupInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -330,7 +346,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{5} + return fileDescriptor_group_ac6850665f72c22b, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -350,16 +366,16 @@ func (m *GetGroupsInfoResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupsInfoResp proto.InternalMessageInfo -func (m *GetGroupsInfoResp) GetErrorCode() int32 { +func (m *GetGroupsInfoResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetGroupsInfoResp) GetErrorMsg() string { +func (m *GetGroupsInfoResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -379,6 +395,7 @@ type SetGroupInfoReq struct { FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,8,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -388,7 +405,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{6} + return fileDescriptor_group_ac6850665f72c22b, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -457,8 +474,15 @@ func (m *SetGroupInfoReq) GetOperationID() string { return "" } +func (m *SetGroupInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupApplicationListReq struct { - UID string `protobuf:"bytes,1,opt,name=UID" json:"UID,omitempty"` + OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -469,7 +493,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{7} + return fileDescriptor_group_ac6850665f72c22b, []int{7} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -489,9 +513,9 @@ func (m *GetGroupApplicationListReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupApplicationListReq proto.InternalMessageInfo -func (m *GetGroupApplicationListReq) GetUID() string { +func (m *GetGroupApplicationListReq) GetOpUserID() string { if m != nil { - return m.UID + return m.OpUserID } return "" } @@ -529,7 +553,7 @@ func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupAppli func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationList_Data_User) ProtoMessage() {} func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{8} + return fileDescriptor_group_ac6850665f72c22b, []int{8} } func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b) @@ -673,7 +697,7 @@ func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListData) ProtoMessage() {} func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{9} + return fileDescriptor_group_ac6850665f72c22b, []int{9} } func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b) @@ -720,7 +744,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{10} + return fileDescriptor_group_ac6850665f72c22b, []int{10} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -766,6 +790,7 @@ type TransferGroupOwnerReq struct { OldOwner string `protobuf:"bytes,2,opt,name=OldOwner" json:"OldOwner,omitempty"` NewOwner string `protobuf:"bytes,3,opt,name=NewOwner" json:"NewOwner,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -775,7 +800,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{11} + return fileDescriptor_group_ac6850665f72c22b, []int{11} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -823,6 +848,13 @@ func (m *TransferGroupOwnerReq) GetOperationID() string { return "" } +func (m *TransferGroupOwnerReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type TransferGroupOwnerResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` @@ -835,7 +867,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{12} + return fileDescriptor_group_ac6850665f72c22b, []int{12} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -874,6 +906,7 @@ type JoinGroupReq struct { Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -883,7 +916,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{13} + return fileDescriptor_group_ac6850665f72c22b, []int{13} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -931,9 +964,16 @@ func (m *JoinGroupReq) GetOperationID() string { return "" } +func (m *JoinGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GroupApplicationResponseReq struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - OwnerID string `protobuf:"bytes,2,opt,name=OwnerID" json:"OwnerID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` FromUserNickName string `protobuf:"bytes,5,opt,name=FromUserNickName" json:"FromUserNickName,omitempty"` @@ -956,7 +996,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{14} + return fileDescriptor_group_ac6850665f72c22b, []int{14} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -983,9 +1023,9 @@ func (m *GroupApplicationResponseReq) GetOperationID() string { return "" } -func (m *GroupApplicationResponseReq) GetOwnerID() string { +func (m *GroupApplicationResponseReq) GetOpUserID() string { if m != nil { - return m.OwnerID + return m.OpUserID } return "" } @@ -1093,7 +1133,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{15} + return fileDescriptor_group_ac6850665f72c22b, []int{15} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -1132,6 +1172,7 @@ type SetOwnerGroupNickNameReq struct { NickName string `protobuf:"bytes,2,opt,name=nickName" json:"nickName,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1141,7 +1182,7 @@ func (m *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameR func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) } func (*SetOwnerGroupNickNameReq) ProtoMessage() {} func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{16} + return fileDescriptor_group_ac6850665f72c22b, []int{16} } func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b) @@ -1189,10 +1230,18 @@ func (m *SetOwnerGroupNickNameReq) GetToken() string { return "" } +func (m *SetOwnerGroupNickNameReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type QuitGroupReq struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1202,7 +1251,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{17} + return fileDescriptor_group_ac6850665f72c22b, []int{17} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1243,6 +1292,13 @@ func (m *QuitGroupReq) GetToken() string { return "" } +func (m *QuitGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GroupApplicationUserInfo struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` Uid string `protobuf:"bytes,2,opt,name=uid" json:"uid,omitempty"` @@ -1262,7 +1318,7 @@ func (m *GroupApplicationUserInfo) Reset() { *m = GroupApplicationUserIn func (m *GroupApplicationUserInfo) String() string { return proto.CompactTextString(m) } func (*GroupApplicationUserInfo) ProtoMessage() {} func (*GroupApplicationUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{18} + return fileDescriptor_group_ac6850665f72c22b, []int{18} } func (m *GroupApplicationUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationUserInfo.Unmarshal(m, b) @@ -1360,7 +1416,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{19} + return fileDescriptor_group_ac6850665f72c22b, []int{19} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -1421,6 +1477,7 @@ type GetGroupMemberListReq struct { OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` Filter int32 `protobuf:"varint,4,opt,name=filter" json:"filter,omitempty"` NextSeq int32 `protobuf:"varint,5,opt,name=nextSeq" json:"nextSeq,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1430,7 +1487,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{20} + return fileDescriptor_group_ac6850665f72c22b, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1485,9 +1542,16 @@ func (m *GetGroupMemberListReq) GetNextSeq() int32 { return 0 } +func (m *GetGroupMemberListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupMemberListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq" json:"nextSeq,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1499,7 +1563,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{21} + return fileDescriptor_group_ac6850665f72c22b, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1519,16 +1583,16 @@ func (m *GetGroupMemberListResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupMemberListResp proto.InternalMessageInfo -func (m *GetGroupMemberListResp) GetErrorCode() int32 { +func (m *GetGroupMemberListResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetGroupMemberListResp) GetErrorMsg() string { +func (m *GetGroupMemberListResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -1552,6 +1616,7 @@ type GetGroupMembersInfoReq struct { MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"` Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1561,7 +1626,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{22} + return fileDescriptor_group_ac6850665f72c22b, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1609,9 +1674,16 @@ func (m *GetGroupMembersInfoReq) GetOperationID() string { return "" } +func (m *GetGroupMembersInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupMembersInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1622,7 +1694,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{23} + return fileDescriptor_group_ac6850665f72c22b, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1642,16 +1714,16 @@ func (m *GetGroupMembersInfoResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupMembersInfoResp proto.InternalMessageInfo -func (m *GetGroupMembersInfoResp) GetErrorCode() int32 { +func (m *GetGroupMembersInfoResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetGroupMembersInfoResp) GetErrorMsg() string { +func (m *GetGroupMembersInfoResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -1669,6 +1741,7 @@ type KickGroupMemberReq struct { Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"` Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,5,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1678,7 +1751,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{24} + return fileDescriptor_group_ac6850665f72c22b, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1733,6 +1806,13 @@ func (m *KickGroupMemberReq) GetOperationID() string { return "" } +func (m *KickGroupMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type Id2Result struct { UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` @@ -1745,7 +1825,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{25} + return fileDescriptor_group_ac6850665f72c22b, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1780,8 +1860,8 @@ func (m *Id2Result) GetResult() int32 { } type KickGroupMemberResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result" json:"id2result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1792,7 +1872,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{26} + return fileDescriptor_group_ac6850665f72c22b, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1812,16 +1892,16 @@ func (m *KickGroupMemberResp) XXX_DiscardUnknown() { var xxx_messageInfo_KickGroupMemberResp proto.InternalMessageInfo -func (m *KickGroupMemberResp) GetErrorCode() int32 { +func (m *KickGroupMemberResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *KickGroupMemberResp) GetErrorMsg() string { +func (m *KickGroupMemberResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -1836,6 +1916,7 @@ func (m *KickGroupMemberResp) GetId2Result() []*Id2Result { type GetJoinedGroupListReq struct { Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1845,7 +1926,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{27} + return fileDescriptor_group_ac6850665f72c22b, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1879,6 +1960,13 @@ func (m *GetJoinedGroupListReq) GetOperationID() string { return "" } +func (m *GetJoinedGroupListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GroupInfo struct { GroupId string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"` GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` @@ -1897,7 +1985,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{28} + return fileDescriptor_group_ac6850665f72c22b, []int{28} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -1974,9 +2062,9 @@ func (m *GroupInfo) GetMemberCount() uint32 { } type GetJoinedGroupListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - GroupList []*GroupInfo `protobuf:"bytes,3,rep,name=groupList" json:"groupList,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + GroupList []*GroupInfo `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1986,7 +2074,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{29} + return fileDescriptor_group_ac6850665f72c22b, []int{29} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -2006,9 +2094,9 @@ func (m *GetJoinedGroupListResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetJoinedGroupListResp proto.InternalMessageInfo -func (m *GetJoinedGroupListResp) GetErrorCode() int32 { +func (m *GetJoinedGroupListResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } @@ -2033,6 +2121,7 @@ type InviteUserToGroupReq struct { GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` Reason string `protobuf:"bytes,4,opt,name=reason" json:"reason,omitempty"` UidList []string `protobuf:"bytes,5,rep,name=uidList" json:"uidList,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2042,7 +2131,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{30} + return fileDescriptor_group_ac6850665f72c22b, []int{30} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -2097,10 +2186,17 @@ func (m *InviteUserToGroupReq) GetUidList() []string { return nil } +func (m *InviteUserToGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type InviteUserToGroupResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result" json:"id2result,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=Id2Result" json:"Id2Result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2110,7 +2206,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{31} + return fileDescriptor_group_ac6850665f72c22b, []int{31} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -2130,16 +2226,16 @@ func (m *InviteUserToGroupResp) XXX_DiscardUnknown() { var xxx_messageInfo_InviteUserToGroupResp proto.InternalMessageInfo -func (m *InviteUserToGroupResp) GetErrorCode() int32 { +func (m *InviteUserToGroupResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *InviteUserToGroupResp) GetErrorMsg() string { +func (m *InviteUserToGroupResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -2155,6 +2251,7 @@ type GetGroupAllMemberReq struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2164,7 +2261,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{32} + return fileDescriptor_group_ac6850665f72c22b, []int{32} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -2205,9 +2302,16 @@ func (m *GetGroupAllMemberReq) GetOperationID() string { return "" } +func (m *GetGroupAllMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupAllMemberResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2218,7 +2322,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{33} + return fileDescriptor_group_ac6850665f72c22b, []int{33} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -2238,16 +2342,16 @@ func (m *GetGroupAllMemberResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupAllMemberResp proto.InternalMessageInfo -func (m *GetGroupAllMemberResp) GetErrorCode() int32 { +func (m *GetGroupAllMemberResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetGroupAllMemberResp) GetErrorMsg() string { +func (m *GetGroupAllMemberResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -2799,116 +2903,117 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_ed07d0078ff66bfe) } +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_ac6850665f72c22b) } -var fileDescriptor_group_ed07d0078ff66bfe = []byte{ - // 1718 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6e, 0xdc, 0xb6, - 0x13, 0x87, 0x76, 0xb5, 0xb6, 0x77, 0xfc, 0x4d, 0xc7, 0x8e, 0xfe, 0x8a, 0xff, 0x86, 0xc3, 0x06, - 0x85, 0xd1, 0x83, 0x0b, 0x38, 0x68, 0x81, 0xb4, 0x39, 0x34, 0xb1, 0x63, 0xc7, 0x69, 0x63, 0x27, - 0xb2, 0x73, 0xe9, 0x25, 0x51, 0x56, 0xf4, 0x46, 0xf1, 0xae, 0xb4, 0x96, 0xb4, 0x4d, 0xda, 0x4b, - 0x91, 0xa2, 0x40, 0xbf, 0x50, 0xf4, 0x90, 0x53, 0xdb, 0x17, 0xe8, 0xa9, 0x4f, 0xd0, 0xb7, 0xe9, - 0x8b, 0x14, 0x1c, 0x92, 0x12, 0xf5, 0xb5, 0x1b, 0xd8, 0x45, 0x73, 0x59, 0x68, 0x86, 0x43, 0x72, - 0x66, 0x38, 0xf3, 0xe3, 0x0c, 0x17, 0x16, 0xbb, 0x51, 0x38, 0x1c, 0xbc, 0x8f, 0xbf, 0x9b, 0x83, - 0x28, 0x4c, 0x42, 0xd2, 0x42, 0x82, 0xee, 0x02, 0x6c, 0x87, 0xfd, 0x7e, 0x18, 0x38, 0x2c, 0x1e, - 0x90, 0x55, 0x68, 0xdf, 0x89, 0xa2, 0x30, 0xda, 0x0e, 0x3d, 0x66, 0x19, 0xeb, 0xc6, 0x46, 0xcb, - 0xc9, 0x18, 0xc4, 0x86, 0x29, 0x24, 0xee, 0xc7, 0x5d, 0xab, 0xb1, 0x6e, 0x6c, 0xb4, 0x9d, 0x94, - 0xa6, 0xaf, 0x1b, 0x30, 0xb7, 0x1d, 0x31, 0x37, 0x61, 0x7b, 0x7c, 0x5d, 0x87, 0x9d, 0x91, 0x1b, - 0x00, 0x7d, 0xd6, 0x7f, 0xca, 0xa2, 0xcf, 0xfc, 0x38, 0xb1, 0x8c, 0xf5, 0xe6, 0xc6, 0xf4, 0xd6, - 0xff, 0x36, 0x85, 0x0e, 0x28, 0x74, 0xcb, 0xf3, 0xee, 0xa3, 0xc0, 0x7e, 0x70, 0x12, 0x3a, 0x9a, - 0x30, 0xd7, 0x03, 0xe5, 0x0e, 0xdc, 0x3e, 0x93, 0x5b, 0x65, 0x0c, 0x42, 0x61, 0xc6, 0x0f, 0x92, - 0x28, 0xf4, 0x86, 0x9d, 0xc4, 0x0f, 0x03, 0xab, 0x89, 0x02, 0x39, 0x1e, 0x97, 0x09, 0xc2, 0xc4, - 0x3f, 0xf1, 0x3b, 0x2e, 0xca, 0x98, 0x42, 0x46, 0xe7, 0x11, 0x0b, 0x26, 0x4f, 0xdc, 0x0e, 0x7b, - 0x14, 0xf5, 0xac, 0x16, 0x0e, 0x2b, 0x92, 0x5c, 0x82, 0x56, 0x12, 0x9e, 0xb2, 0xc0, 0x9a, 0x40, - 0xbe, 0x20, 0xc8, 0x3a, 0x4c, 0x87, 0x03, 0x16, 0xe1, 0xe4, 0xfd, 0x1d, 0x6b, 0x12, 0xc7, 0x74, - 0x16, 0x99, 0x83, 0x06, 0x7b, 0x69, 0x4d, 0xe1, 0x40, 0x83, 0xbd, 0xa4, 0x9f, 0x00, 0x29, 0x5b, - 0x4a, 0x16, 0xa0, 0x39, 0xf4, 0x3d, 0xf4, 0x6f, 0xdb, 0xe1, 0x9f, 0x5c, 0x93, 0x98, 0x25, 0x4e, - 0xd8, 0x13, 0xd6, 0xb6, 0x1c, 0x45, 0x52, 0x06, 0xf3, 0x39, 0xb7, 0x5e, 0xe4, 0x90, 0xf8, 0x36, - 0xe8, 0xc5, 0xfd, 0x1d, 0xe9, 0x33, 0x45, 0xd2, 0x1e, 0x2c, 0xec, 0xb1, 0x04, 0xf7, 0x88, 0xf1, - 0x34, 0xd8, 0x19, 0x37, 0x57, 0x0e, 0xa7, 0x07, 0xd8, 0x76, 0x74, 0x56, 0xe6, 0xa6, 0xc6, 0x08, - 0x37, 0x35, 0x4b, 0x6e, 0xa2, 0x31, 0x2c, 0x16, 0x76, 0xbb, 0x90, 0x59, 0xd7, 0xc0, 0xf4, 0xdc, - 0xc4, 0xb5, 0x9a, 0x18, 0x62, 0x0b, 0x7a, 0x88, 0xe1, 0xea, 0x38, 0x4a, 0xff, 0x36, 0x60, 0xfe, - 0x48, 0xee, 0xaa, 0x4c, 0xd4, 0x1c, 0x62, 0xe4, 0x1c, 0x32, 0x3e, 0x02, 0x73, 0xd1, 0xd5, 0xac, - 0x88, 0xae, 0x62, 0x94, 0x9a, 0x15, 0x51, 0xfa, 0xaf, 0x47, 0x20, 0x7d, 0x00, 0xb6, 0x72, 0xed, - 0xad, 0xc1, 0xa0, 0x27, 0x95, 0xe1, 0xa7, 0xc5, 0xed, 0x5d, 0x80, 0xe6, 0xa3, 0xd4, 0x56, 0xfe, - 0xc9, 0x57, 0x3c, 0xd4, 0x56, 0x14, 0x96, 0xea, 0x2c, 0xfa, 0xab, 0x09, 0x57, 0x6b, 0x96, 0x7c, - 0xbc, 0xe3, 0x26, 0xee, 0xe3, 0x47, 0x31, 0x8b, 0x78, 0xe4, 0xa7, 0x0b, 0x37, 0xf6, 0x77, 0xb8, - 0x65, 0x7b, 0xd2, 0xb3, 0x62, 0x4d, 0x45, 0x92, 0x35, 0x80, 0xdd, 0x28, 0xec, 0xf3, 0x59, 0x69, - 0x74, 0x68, 0x1c, 0x7e, 0xd2, 0xc7, 0xa1, 0x1c, 0x15, 0x3e, 0x4b, 0x69, 0x42, 0xc0, 0xdc, 0xed, - 0xb9, 0x5d, 0x74, 0x56, 0xcb, 0xc1, 0x6f, 0xbe, 0x9e, 0xc3, 0xce, 0x86, 0x2c, 0x4e, 0x78, 0x6c, - 0x08, 0x77, 0x69, 0x1c, 0x3e, 0x7e, 0xd7, 0x0d, 0xbc, 0x1e, 0xf3, 0xf8, 0xb8, 0x70, 0x99, 0xc6, - 0xe1, 0x9a, 0xde, 0xf2, 0xbc, 0x63, 0xbf, 0xcf, 0x30, 0x71, 0x9b, 0x8e, 0x22, 0xc9, 0x7b, 0xb0, - 0xa0, 0xf4, 0x3a, 0xf0, 0x3b, 0xa7, 0x01, 0x0f, 0x85, 0x36, 0xce, 0x2f, 0xf1, 0xc9, 0xbb, 0x30, - 0x27, 0xb4, 0x4c, 0x25, 0x01, 0x25, 0x0b, 0x5c, 0xb2, 0x01, 0xf3, 0x6a, 0xee, 0xae, 0x3c, 0xf9, - 0x69, 0x14, 0x2c, 0xb2, 0xc9, 0x35, 0x98, 0x15, 0x73, 0x95, 0xdc, 0x0c, 0xca, 0xe5, 0x99, 0xfc, - 0xfc, 0xa4, 0x2d, 0x9c, 0x6b, 0xcd, 0x8a, 0xf3, 0xd3, 0x58, 0xdc, 0x67, 0xc7, 0x5f, 0x0e, 0x98, - 0x35, 0x27, 0x7c, 0xc6, 0xbf, 0x79, 0x6c, 0x0a, 0x91, 0xa3, 0xc4, 0x4d, 0x86, 0xb1, 0x35, 0x8f, - 0x63, 0x39, 0x5e, 0x26, 0xe3, 0xb0, 0x78, 0xd8, 0x4b, 0xac, 0x05, 0x5d, 0x46, 0xf0, 0xe8, 0x19, - 0x5c, 0xa9, 0x09, 0x0d, 0x1e, 0x19, 0x3c, 0x88, 0xb7, 0xc3, 0x61, 0x90, 0xc8, 0x74, 0x16, 0x04, - 0xb9, 0x09, 0x26, 0xea, 0xda, 0xc0, 0x74, 0xdd, 0x50, 0xe9, 0x3a, 0x2e, 0xc4, 0x1c, 0x9c, 0x45, - 0xbf, 0x33, 0x6a, 0xf7, 0x44, 0x18, 0xb1, 0x60, 0xf2, 0x4e, 0xa4, 0x83, 0x88, 0x22, 0xc9, 0x0a, - 0x4c, 0xdc, 0x89, 0x34, 0x00, 0x91, 0x14, 0xf9, 0x10, 0xcc, 0x1d, 0x01, 0x1f, 0xc6, 0xc6, 0xf4, - 0x16, 0x1d, 0xad, 0x0f, 0x97, 0x74, 0x50, 0x9e, 0xfe, 0x64, 0xc0, 0xf2, 0x71, 0xe4, 0x06, 0xf1, - 0x09, 0x8b, 0x50, 0xf4, 0xf0, 0x45, 0xc0, 0x22, 0x09, 0x2b, 0x7b, 0x79, 0x58, 0x51, 0xc1, 0x6f, - 0xc3, 0xd4, 0x61, 0xcf, 0x43, 0x41, 0x05, 0x63, 0x8a, 0xe6, 0x63, 0x07, 0xec, 0x85, 0x18, 0x13, - 0x69, 0x91, 0xd2, 0xc5, 0x34, 0x35, 0xcb, 0x69, 0x7a, 0x0f, 0x56, 0xaa, 0x94, 0x39, 0x8f, 0x47, - 0xe8, 0x57, 0x30, 0x73, 0x2f, 0xf4, 0x83, 0xf4, 0x26, 0xaf, 0x87, 0x49, 0x0b, 0x26, 0xfb, 0x2c, - 0x8e, 0xdd, 0xae, 0x02, 0x49, 0x45, 0x66, 0x00, 0xd6, 0x2c, 0x00, 0xd8, 0x18, 0x3b, 0x7e, 0x30, - 0xe1, 0x4a, 0xd1, 0xf1, 0xdc, 0x8c, 0x30, 0x88, 0x99, 0xbc, 0x95, 0xf4, 0x15, 0x8c, 0xd2, 0x0a, - 0x5c, 0x27, 0x34, 0x3e, 0x83, 0x1e, 0x49, 0xea, 0xe7, 0xd2, 0x1c, 0x05, 0x4a, 0x66, 0x09, 0x94, - 0x0a, 0x50, 0x80, 0xb7, 0x42, 0xab, 0x0c, 0x05, 0x07, 0x35, 0x29, 0x3e, 0x51, 0x9d, 0xe2, 0x3a, - 0xd4, 0x4d, 0x16, 0xa0, 0x2e, 0x07, 0x28, 0xb8, 0xdf, 0x54, 0x11, 0x50, 0x70, 0xb7, 0x12, 0x4c, - 0xb4, 0xab, 0x60, 0x42, 0x03, 0x39, 0xc8, 0x83, 0x5c, 0x1e, 0x3e, 0xa7, 0xc7, 0xc0, 0xe7, 0x4c, - 0x09, 0x3e, 0x15, 0xbc, 0xcc, 0x8e, 0x80, 0x97, 0xb9, 0x37, 0x80, 0x97, 0xf9, 0x0a, 0x78, 0x79, - 0x00, 0xab, 0xf5, 0xa1, 0x70, 0xae, 0xc8, 0xfe, 0xde, 0x00, 0xeb, 0x88, 0x25, 0x18, 0x10, 0xb8, - 0xb4, 0xf2, 0xe3, 0xe8, 0x30, 0xb7, 0x61, 0x2a, 0x50, 0xc7, 0x20, 0xd3, 0x56, 0xd1, 0xc5, 0x80, - 0x6c, 0x96, 0x03, 0x32, 0x4d, 0x05, 0x53, 0x4b, 0x05, 0xfa, 0x04, 0x66, 0x1e, 0x0e, 0xfd, 0xe4, - 0x0d, 0x92, 0xac, 0x70, 0xeb, 0x37, 0xca, 0x75, 0x67, 0x65, 0xb2, 0xd1, 0x6f, 0x1b, 0x60, 0x15, - 0xfd, 0x87, 0xd1, 0xc5, 0x8b, 0xd0, 0xfa, 0xed, 0x64, 0x79, 0xda, 0xc8, 0xca, 0x53, 0x02, 0x26, - 0x5e, 0x69, 0x62, 0x75, 0xfc, 0xe6, 0x3c, 0xbf, 0x93, 0x96, 0x35, 0xf8, 0xcd, 0xbd, 0x1e, 0xb1, - 0x33, 0xee, 0x75, 0x91, 0x1b, 0x92, 0xe2, 0x19, 0xe1, 0x66, 0x2a, 0x60, 0x14, 0x4e, 0x60, 0x14, - 0x16, 0xd9, 0x7c, 0xd5, 0x13, 0x7e, 0xc1, 0x4f, 0x8a, 0x68, 0x3a, 0x91, 0x17, 0xbc, 0xb0, 0x35, - 0xe4, 0x79, 0x22, 0xb2, 0x40, 0xe3, 0xf0, 0xf1, 0x67, 0x59, 0x84, 0x8a, 0xf0, 0xd7, 0x38, 0xf4, - 0xb5, 0x01, 0x4b, 0xe8, 0x06, 0x51, 0x82, 0xef, 0x0e, 0x7b, 0x3d, 0xf4, 0xc0, 0x0a, 0x4c, 0x0c, - 0xb9, 0x37, 0x54, 0x25, 0x2e, 0x29, 0xae, 0x43, 0x94, 0x55, 0xe2, 0xf8, 0xcd, 0x03, 0xe0, 0x79, - 0xe8, 0x0b, 0xd5, 0xb9, 0x17, 0x4c, 0x27, 0xa5, 0x73, 0xc1, 0x61, 0x16, 0x82, 0xa3, 0xb6, 0xc0, - 0xa3, 0xbf, 0x1b, 0xb0, 0xac, 0xee, 0x98, 0xfb, 0x69, 0xe7, 0x33, 0x3a, 0x10, 0xce, 0x59, 0x6f, - 0x73, 0x4b, 0x4f, 0xfc, 0x5e, 0xc2, 0x22, 0xd4, 0xaf, 0xe5, 0x48, 0x8a, 0xef, 0x14, 0xb0, 0x97, - 0xc9, 0x11, 0x3b, 0x93, 0x15, 0x95, 0x22, 0xe9, 0x1f, 0x06, 0xac, 0x54, 0x69, 0x27, 0xea, 0x74, - 0x56, 0xac, 0xd3, 0x99, 0x5e, 0xa7, 0xb3, 0x42, 0x9d, 0xae, 0x68, 0xf2, 0x51, 0xae, 0x21, 0x14, - 0xd5, 0xba, 0xad, 0x57, 0xeb, 0xf9, 0x03, 0xca, 0x75, 0x84, 0x9a, 0xaa, 0x66, 0x5e, 0xd5, 0x1f, - 0x4b, 0xaa, 0xc6, 0xe3, 0xcb, 0xfb, 0xb5, 0x9c, 0x2a, 0x0d, 0x6c, 0x6d, 0xf4, 0xed, 0x6a, 0x6f, - 0xaf, 0xb0, 0x7c, 0x7b, 0xe9, 0xe5, 0xf7, 0x2f, 0x06, 0x5c, 0xae, 0x54, 0xe6, 0x6d, 0x39, 0x8e, - 0xfe, 0x65, 0x00, 0xf9, 0xd4, 0xef, 0x9c, 0x6a, 0x72, 0xa3, 0x5d, 0x73, 0x13, 0xa6, 0x87, 0xbe, - 0xc7, 0xe7, 0xf2, 0xb5, 0x64, 0x95, 0x36, 0x6a, 0x37, 0x5d, 0x5c, 0x40, 0x80, 0x1b, 0xa7, 0x3d, - 0x91, 0xa4, 0xaa, 0x31, 0xb0, 0xe8, 0xd0, 0x56, 0xd9, 0xa1, 0x1f, 0x40, 0x7b, 0xdf, 0xdb, 0x12, - 0xf7, 0x01, 0x22, 0xd3, 0x7e, 0xd6, 0x38, 0xef, 0x7b, 0x62, 0x3b, 0xbc, 0x3f, 0x44, 0xb6, 0x4a, - 0x8a, 0x7e, 0x0d, 0x4b, 0x25, 0xa3, 0x2f, 0x74, 0x04, 0x9b, 0xd0, 0xf6, 0xbd, 0x2d, 0xb9, 0x57, - 0xbe, 0xd1, 0x4c, 0xf5, 0x73, 0x32, 0x11, 0x7a, 0x08, 0xcb, 0x5d, 0x96, 0xf0, 0x2a, 0x8a, 0x79, - 0xa8, 0x85, 0xca, 0xee, 0xd4, 0x11, 0xc6, 0x08, 0x47, 0x94, 0x21, 0x9e, 0xbe, 0x6a, 0x40, 0x3b, - 0xed, 0x5d, 0xb3, 0xe3, 0xf3, 0xf2, 0xc7, 0xe7, 0xbd, 0xf5, 0xc6, 0x75, 0x0d, 0xa0, 0x83, 0x0f, - 0x16, 0x29, 0xcc, 0x9b, 0x8e, 0xc6, 0xe1, 0x33, 0x43, 0x2c, 0xc7, 0x3c, 0x59, 0xf2, 0x28, 0x92, - 0xfb, 0x40, 0xc4, 0xad, 0xe8, 0x19, 0x38, 0xd0, 0xcf, 0x3a, 0x3a, 0x8b, 0x7e, 0x63, 0xc0, 0x4a, - 0x95, 0x57, 0x2f, 0x7a, 0xb2, 0x5d, 0xb5, 0x54, 0xed, 0x13, 0x42, 0x26, 0x42, 0x7f, 0x33, 0xe0, - 0x92, 0x1f, 0x7c, 0xe1, 0x27, 0x8c, 0xdf, 0xa5, 0xc7, 0x61, 0x7a, 0x81, 0x9f, 0xf3, 0x64, 0xeb, - 0x5f, 0x65, 0xb4, 0x64, 0x32, 0x73, 0xc9, 0x64, 0xc1, 0xa4, 0xcc, 0x39, 0xab, 0x85, 0xd0, 0xa5, - 0x48, 0xfa, 0xca, 0x80, 0xe5, 0x0a, 0xe5, 0xfe, 0xd3, 0xd0, 0x7f, 0x06, 0x97, 0xd2, 0xe6, 0xa9, - 0xd7, 0x7b, 0x13, 0xc8, 0x39, 0xef, 0x3b, 0xd2, 0xcf, 0xda, 0x1d, 0xaa, 0x6d, 0xf5, 0xb6, 0xb0, - 0x76, 0xeb, 0xcf, 0x29, 0x10, 0xcf, 0xaa, 0x1c, 0x44, 0x3b, 0xd9, 0xb3, 0x1d, 0x59, 0x96, 0x0b, - 0xe4, 0x5f, 0x48, 0xed, 0x95, 0x2a, 0x76, 0x3c, 0x20, 0xd7, 0xa1, 0xfd, 0x5c, 0xf5, 0x5f, 0x64, - 0x49, 0x0a, 0xe9, 0x1d, 0x99, 0xbd, 0xa8, 0x66, 0x66, 0x6f, 0xb7, 0xd7, 0xa1, 0x7d, 0xa6, 0xea, - 0xc9, 0x74, 0x92, 0x5e, 0x61, 0x56, 0x4d, 0xba, 0x0d, 0xb3, 0x5d, 0xfd, 0x25, 0x8e, 0x5c, 0x2e, - 0xb4, 0xbf, 0xea, 0x2e, 0xb5, 0xad, 0xea, 0x81, 0x78, 0x40, 0x6e, 0xc0, 0x4c, 0xac, 0xbd, 0xab, - 0x11, 0x65, 0x55, 0xe1, 0xb1, 0xad, 0x6a, 0xfb, 0x27, 0x70, 0xb9, 0x5b, 0xdd, 0x67, 0x93, 0xab, - 0xa3, 0xfb, 0x70, 0xbe, 0x20, 0x1d, 0x27, 0x12, 0x0f, 0xc8, 0x43, 0x20, 0x49, 0xa9, 0x2d, 0x26, - 0xab, 0x72, 0x66, 0x65, 0xfb, 0x6e, 0xff, 0x7f, 0xc4, 0x68, 0x3c, 0x20, 0x1d, 0xb0, 0xba, 0x35, - 0x5d, 0x09, 0xa1, 0xb9, 0xf7, 0xed, 0xca, 0x0e, 0xd6, 0x7e, 0x67, 0xac, 0x8c, 0xd0, 0xbb, 0x5b, - 0xaa, 0xbf, 0x52, 0xbd, 0x2b, 0x0b, 0xc7, 0x54, 0xef, 0x9a, 0xc2, 0xed, 0x18, 0x96, 0xba, 0xe5, - 0xd2, 0x84, 0x54, 0xcf, 0x4a, 0xcf, 0x7d, 0x6d, 0xd4, 0x70, 0x3c, 0x20, 0x77, 0x61, 0xfe, 0x34, - 0x7f, 0xd3, 0x12, 0xf5, 0xc8, 0x5f, 0x2e, 0x3b, 0x6c, 0xbb, 0x6e, 0x28, 0x35, 0xb9, 0x00, 0xee, - 0xa9, 0xc9, 0x95, 0xb7, 0x69, 0x6a, 0x72, 0xcd, 0xad, 0x70, 0x00, 0x8b, 0x25, 0x34, 0x24, 0x57, - 0xe4, 0x9c, 0x2a, 0x10, 0xb7, 0x57, 0xeb, 0x07, 0xc5, 0x7a, 0xdd, 0x22, 0xde, 0xa4, 0xeb, 0x55, - 0x81, 0x9e, 0xbd, 0x5a, 0x3f, 0x18, 0x0f, 0x6e, 0xcf, 0x7f, 0x3e, 0xbb, 0x29, 0xfe, 0x95, 0xf9, - 0x18, 0x7f, 0x9f, 0x4e, 0xe0, 0x9f, 0x33, 0xd7, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xc0, 0xd8, - 0xe8, 0x44, 0xb1, 0x19, 0x00, 0x00, +var fileDescriptor_group_ac6850665f72c22b = []byte{ + // 1744 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdb, 0x6f, 0xdc, 0x44, + 0x17, 0x97, 0x77, 0xbd, 0x9b, 0xec, 0xc9, 0x7d, 0xd2, 0xa4, 0xfe, 0xdc, 0x7c, 0x51, 0xea, 0xaf, + 0xfa, 0x14, 0xf1, 0x10, 0xa4, 0x54, 0x20, 0x15, 0x2a, 0x44, 0x9b, 0x5b, 0xb7, 0xd0, 0x94, 0x3a, + 0xe9, 0x4b, 0x25, 0x54, 0xdc, 0xf5, 0xec, 0xe2, 0x66, 0xd7, 0xf6, 0xda, 0x5e, 0xda, 0x4a, 0x08, + 0x09, 0xa9, 0xa8, 0x48, 0x3c, 0x22, 0x21, 0xf1, 0xc6, 0x03, 0x82, 0x37, 0x24, 0x5e, 0xe0, 0x5f, + 0xe1, 0xbf, 0x01, 0xcd, 0xd5, 0xe3, 0x6b, 0xa2, 0x45, 0x94, 0x97, 0x95, 0xcf, 0x99, 0x33, 0x33, + 0x67, 0x7e, 0x73, 0xce, 0x6f, 0xce, 0xcc, 0xc2, 0xca, 0x20, 0x0a, 0x26, 0xe1, 0x9b, 0xf4, 0x77, + 0x27, 0x8c, 0x82, 0x24, 0x40, 0x2d, 0x2a, 0x58, 0xef, 0x01, 0xec, 0x05, 0xa3, 0x51, 0xe0, 0xdb, + 0x38, 0x0e, 0x91, 0x01, 0x33, 0x07, 0x51, 0xb4, 0x17, 0xb8, 0xd8, 0xd0, 0xb6, 0xb4, 0xed, 0x96, + 0x2d, 0x44, 0xb4, 0x0e, 0xed, 0x83, 0x28, 0xba, 0x17, 0x0f, 0x8c, 0xc6, 0x96, 0xb6, 0xdd, 0xb1, + 0xb9, 0x64, 0xfd, 0xda, 0x80, 0xc5, 0xbd, 0x08, 0x3b, 0x09, 0x3e, 0x22, 0xe3, 0xd9, 0x78, 0x8c, + 0x6e, 0x00, 0x8c, 0xf0, 0xe8, 0x09, 0x8e, 0x3e, 0xf4, 0xe2, 0xc4, 0xd0, 0xb6, 0x9a, 0xdb, 0x73, + 0xbb, 0xff, 0xd9, 0x61, 0x73, 0x53, 0xa3, 0x5b, 0xae, 0x7b, 0x8f, 0x1a, 0x74, 0xfd, 0x7e, 0x60, + 0x2b, 0xc6, 0x68, 0x03, 0x3a, 0xd4, 0xee, 0xd8, 0x19, 0x61, 0x3e, 0x51, 0xaa, 0x40, 0x16, 0xcc, + 0x7b, 0x7e, 0x12, 0x05, 0xee, 0xa4, 0x97, 0x78, 0x81, 0x6f, 0x34, 0xa9, 0x41, 0x46, 0x47, 0x6c, + 0xfc, 0x20, 0xf1, 0xfa, 0x5e, 0xcf, 0xa1, 0x36, 0x3a, 0xb3, 0x51, 0x75, 0x64, 0x95, 0x7d, 0xa7, + 0x87, 0x1f, 0x46, 0x43, 0xa3, 0x45, 0x9b, 0x85, 0x88, 0x2e, 0x41, 0x2b, 0x09, 0xce, 0xb0, 0x6f, + 0xb4, 0xa9, 0x9e, 0x09, 0x68, 0x0b, 0xe6, 0x82, 0x10, 0x47, 0xb4, 0x73, 0x77, 0xdf, 0x98, 0xa1, + 0x6d, 0xaa, 0x0a, 0x99, 0x30, 0x7b, 0x3f, 0x7c, 0x18, 0xe3, 0xa8, 0xbb, 0x6f, 0xcc, 0xd2, 0x66, + 0x29, 0xa3, 0x65, 0x68, 0x1e, 0x3c, 0x4f, 0x8c, 0x0e, 0x55, 0x93, 0x4f, 0xeb, 0x7d, 0x40, 0x45, + 0x1c, 0x88, 0xdd, 0xc4, 0x73, 0x29, 0xee, 0x1d, 0x9b, 0x7c, 0x12, 0x3f, 0x63, 0x9c, 0xd8, 0xc1, + 0x90, 0x61, 0xd1, 0xb2, 0x85, 0x68, 0x7d, 0x0c, 0x4b, 0x19, 0xd0, 0xa7, 0xd9, 0x3a, 0xd2, 0x83, + 0x62, 0xdb, 0xdd, 0xe7, 0x48, 0x0a, 0xd1, 0xfa, 0x5a, 0x83, 0xe5, 0x23, 0x9c, 0xd0, 0xc1, 0x63, + 0xba, 0x49, 0x78, 0x4c, 0x50, 0xe0, 0xed, 0x72, 0x5f, 0x3b, 0xb6, 0xaa, 0x4a, 0xd1, 0x6b, 0xd4, + 0xa0, 0xd7, 0xac, 0x47, 0x4f, 0xcf, 0xa2, 0x67, 0x9d, 0xc1, 0x4a, 0xce, 0x93, 0xa9, 0xd6, 0x7a, + 0x0d, 0x74, 0xd7, 0x49, 0x1c, 0xa3, 0x49, 0xa3, 0x71, 0x59, 0x8d, 0x46, 0x3a, 0x2a, 0x6d, 0xb5, + 0xfe, 0xd4, 0x60, 0xe9, 0x84, 0xcf, 0x26, 0x96, 0xad, 0xa0, 0xa4, 0x65, 0x50, 0x3a, 0x3f, 0x58, + 0x33, 0x81, 0xd8, 0x2c, 0x09, 0xc4, 0x7c, 0x40, 0xeb, 0x25, 0x01, 0xfd, 0x5a, 0x83, 0xd5, 0x7a, + 0x04, 0xa6, 0x80, 0xfb, 0x56, 0x18, 0x0e, 0xb9, 0xa3, 0x64, 0x77, 0x09, 0x16, 0x6a, 0x4f, 0x2d, + 0x17, 0xe6, 0x5b, 0x30, 0x77, 0x5f, 0x99, 0x97, 0xe1, 0xa1, 0xaa, 0xac, 0xef, 0x75, 0xb8, 0x5a, + 0x31, 0xf8, 0xe3, 0x7d, 0x27, 0x71, 0x1e, 0x93, 0x91, 0xd0, 0x22, 0x34, 0xe4, 0xe8, 0x8d, 0xee, + 0x3e, 0x59, 0xff, 0x11, 0xc7, 0x9f, 0x8d, 0x29, 0x44, 0xb4, 0x09, 0x70, 0x18, 0x05, 0x23, 0xee, + 0x0f, 0xc3, 0x57, 0xd1, 0x10, 0x6f, 0x4f, 0x83, 0x6c, 0x58, 0x09, 0x19, 0x21, 0xd0, 0x0f, 0x87, + 0xce, 0x80, 0x42, 0xda, 0xb2, 0xe9, 0x37, 0x19, 0xcf, 0xc6, 0xe3, 0x09, 0x8e, 0x13, 0x12, 0x3f, + 0x0c, 0x54, 0x45, 0x43, 0xda, 0xef, 0x38, 0xbe, 0x3b, 0xc4, 0x2e, 0x69, 0x67, 0xc0, 0x2a, 0x1a, + 0xe2, 0xe9, 0x2d, 0xd7, 0x3d, 0xf5, 0x46, 0x98, 0xc2, 0xda, 0xb4, 0x85, 0x88, 0xde, 0x80, 0x65, + 0xe1, 0xd7, 0xb1, 0xd7, 0x3b, 0xf3, 0x49, 0xc0, 0x30, 0x3e, 0x28, 0xe8, 0xd1, 0xff, 0x61, 0x91, + 0x79, 0x29, 0x2d, 0x81, 0x5a, 0xe6, 0xb4, 0x68, 0x1b, 0x96, 0x44, 0xdf, 0x43, 0x1e, 0x1f, 0x73, + 0xd4, 0x30, 0xaf, 0x46, 0xd7, 0x60, 0x81, 0xf5, 0x15, 0x76, 0xf3, 0xd4, 0x2e, 0xab, 0x24, 0xfb, + 0xc7, 0xd7, 0x42, 0xb4, 0xc6, 0x02, 0xdb, 0x3f, 0x45, 0x45, 0x30, 0x3b, 0x7d, 0x11, 0x62, 0x63, + 0x91, 0x61, 0x46, 0xbe, 0x49, 0x04, 0x33, 0x93, 0x93, 0xc4, 0x49, 0x26, 0xb1, 0xb1, 0x44, 0xdb, + 0x32, 0xba, 0xd4, 0xc6, 0xc6, 0xf1, 0x64, 0x98, 0x18, 0xcb, 0xaa, 0x0d, 0xd3, 0x59, 0x63, 0xb8, + 0x52, 0x11, 0x1a, 0x24, 0x32, 0x48, 0xa8, 0xef, 0x05, 0x13, 0x3f, 0xe1, 0xe9, 0xce, 0x04, 0x74, + 0x13, 0x74, 0xea, 0x6b, 0x83, 0x26, 0xf5, 0xb6, 0x48, 0xea, 0xf3, 0x42, 0xcc, 0xa6, 0xbd, 0xac, + 0x57, 0x5a, 0xe5, 0x9c, 0x53, 0x92, 0xcc, 0xdb, 0xa0, 0xef, 0x33, 0x92, 0xd1, 0xb6, 0xe7, 0x76, + 0xad, 0x7a, 0x7f, 0x88, 0xa5, 0x4d, 0xed, 0xad, 0x9f, 0x35, 0x58, 0x3b, 0x8d, 0x1c, 0x3f, 0xee, + 0xe3, 0x88, 0x9a, 0xde, 0x7f, 0xe6, 0xe3, 0x88, 0x93, 0xcf, 0x51, 0x96, 0x7c, 0x44, 0xf0, 0x93, + 0x54, 0x1c, 0xba, 0xd4, 0x90, 0x7b, 0x21, 0x65, 0xd2, 0x76, 0x8c, 0x9f, 0xb1, 0x36, 0x96, 0x16, + 0x52, 0xce, 0xa7, 0xa9, 0x5e, 0x48, 0xd3, 0x4c, 0x92, 0xb7, 0x72, 0xf4, 0x70, 0x17, 0xd6, 0xcb, + 0x1c, 0x9d, 0xaa, 0x72, 0xf8, 0x4e, 0x83, 0xf9, 0xbb, 0x81, 0xe7, 0xcb, 0xba, 0xa1, 0x9a, 0x69, + 0x0d, 0x98, 0x19, 0xe1, 0x38, 0x76, 0x06, 0x82, 0x67, 0x85, 0x98, 0x72, 0x60, 0x33, 0xc7, 0x81, + 0x7f, 0x63, 0x91, 0xdf, 0xe8, 0x70, 0x25, 0xbf, 0x63, 0x64, 0x8d, 0x81, 0x1f, 0x63, 0x7e, 0x10, + 0xaa, 0xa3, 0x6b, 0xf5, 0xa3, 0x37, 0x72, 0x3c, 0xa9, 0x6c, 0x69, 0xb3, 0x8e, 0xcf, 0xf4, 0x02, + 0x9f, 0xe5, 0x58, 0x84, 0x1e, 0x3b, 0xad, 0x22, 0x8b, 0x1c, 0x57, 0xb0, 0x43, 0xbb, 0x9c, 0x1d, + 0x54, 0x96, 0x9c, 0xc9, 0xb1, 0x64, 0x86, 0x8b, 0xe8, 0x7c, 0xb3, 0x79, 0x2e, 0xa2, 0xb3, 0x15, + 0x18, 0xa6, 0x53, 0xc6, 0x30, 0x0a, 0x3f, 0x42, 0x96, 0x1f, 0xb3, 0xcc, 0x3b, 0x77, 0x0e, 0xf3, + 0xce, 0x17, 0x98, 0x57, 0x30, 0xd3, 0x42, 0x0d, 0x33, 0x2d, 0x5e, 0x80, 0x99, 0x96, 0x4a, 0x98, + 0xe9, 0x23, 0xd8, 0xa8, 0x0e, 0x86, 0xa9, 0x02, 0xff, 0x47, 0x0d, 0x8c, 0x13, 0x9c, 0xd0, 0xdc, + 0xa1, 0x43, 0x0b, 0x1c, 0xeb, 0x93, 0xc0, 0x84, 0x59, 0x5f, 0x6c, 0x03, 0x0f, 0x2a, 0x21, 0xe7, + 0x43, 0xb2, 0x59, 0x0c, 0x49, 0x99, 0x28, 0xba, 0x9a, 0x28, 0x75, 0x69, 0xf0, 0x39, 0xcc, 0x3f, + 0x98, 0x78, 0xc9, 0x05, 0xd2, 0x33, 0x57, 0x72, 0x34, 0x8a, 0x25, 0x47, 0x79, 0x9a, 0xd6, 0xd5, + 0x7d, 0x2f, 0x1b, 0x60, 0xe4, 0x71, 0xa7, 0x4d, 0xa4, 0x54, 0xae, 0x76, 0x85, 0x17, 0xd1, 0x8d, + 0xb4, 0x88, 0x46, 0xa0, 0xd3, 0x53, 0x94, 0xcd, 0x4c, 0xbf, 0x89, 0xce, 0xeb, 0xc9, 0x7a, 0x8b, + 0x7e, 0x93, 0xdd, 0x8a, 0xf0, 0x98, 0xec, 0x16, 0x03, 0x82, 0x4b, 0x24, 0x93, 0x9c, 0xd4, 0x05, + 0x1a, 0xbd, 0x6d, 0x1a, 0xbd, 0x79, 0x35, 0x19, 0xb5, 0x4f, 0x6a, 0x8a, 0x19, 0x16, 0x85, 0x7d, + 0x5e, 0x53, 0x30, 0x1c, 0x82, 0xb4, 0xda, 0x52, 0x34, 0xa4, 0xfd, 0xd3, 0x34, 0xb2, 0x59, 0xda, + 0x28, 0x1a, 0xeb, 0x5b, 0x0d, 0x56, 0x29, 0x0c, 0xec, 0xa2, 0x70, 0x38, 0x19, 0x0e, 0x29, 0x02, + 0xeb, 0xd0, 0x9e, 0x10, 0x34, 0xc4, 0x7d, 0x81, 0x4b, 0xc4, 0x87, 0x28, 0xbd, 0x2f, 0xd0, 0x6f, + 0x02, 0xf3, 0xd3, 0xc0, 0x63, 0xae, 0x13, 0x14, 0x74, 0x5b, 0xca, 0x99, 0xa0, 0xd2, 0x73, 0x41, + 0x55, 0x59, 0x79, 0x5a, 0xbf, 0x6b, 0xb0, 0x26, 0x8e, 0xb5, 0x7b, 0xf2, 0xf6, 0x56, 0x1f, 0x24, + 0xd3, 0x5e, 0x0e, 0xd6, 0xa1, 0xdd, 0xf7, 0x86, 0x09, 0x8e, 0xa8, 0x7f, 0x2d, 0x9b, 0x4b, 0x64, + 0x26, 0x1f, 0x3f, 0x4f, 0x4e, 0xf0, 0x98, 0x17, 0x71, 0x42, 0xcc, 0x84, 0x55, 0x3b, 0x17, 0x56, + 0x3f, 0x68, 0xb0, 0x5e, 0xe6, 0xf9, 0x54, 0xe7, 0xfd, 0x3b, 0x99, 0x8b, 0x2e, 0xbb, 0x5a, 0x98, + 0xea, 0xd5, 0x22, 0xbb, 0x69, 0x99, 0x9b, 0xae, 0xe2, 0xbe, 0x9e, 0x71, 0xdf, 0xfa, 0xa9, 0xe0, + 0x62, 0x7c, 0xfe, 0x5d, 0x64, 0x33, 0xe3, 0x4a, 0x83, 0xde, 0xcd, 0xd4, 0xe9, 0x2a, 0xcf, 0xc9, + 0xa0, 0x78, 0x4e, 0x06, 0x17, 0x3c, 0x27, 0x5f, 0x69, 0x70, 0xb9, 0xd4, 0xd1, 0xd7, 0x0d, 0xa6, + 0xf5, 0x87, 0x06, 0xe8, 0x03, 0xaf, 0x77, 0xa6, 0xd8, 0xd5, 0xc3, 0x75, 0x13, 0xe6, 0x26, 0x9e, + 0x4b, 0xfa, 0x92, 0xb1, 0x78, 0x01, 0x59, 0x37, 0x9b, 0x6a, 0xce, 0xa8, 0xc2, 0x89, 0xe5, 0xa5, + 0x8e, 0x4b, 0x15, 0x1c, 0x9b, 0x03, 0xb9, 0x55, 0x0f, 0x72, 0x3e, 0x60, 0xdf, 0x82, 0x4e, 0xd7, + 0xdd, 0x65, 0x67, 0x11, 0x65, 0xb7, 0x6e, 0xfa, 0x44, 0xd0, 0x75, 0x99, 0x2b, 0xf4, 0xec, 0x62, + 0x19, 0xcf, 0x25, 0xeb, 0x19, 0xac, 0x16, 0x00, 0x99, 0x6a, 0x5b, 0x76, 0xa0, 0xe3, 0xb9, 0xbb, + 0x7c, 0x8e, 0xec, 0xed, 0x59, 0xfa, 0x65, 0xa7, 0x26, 0xd6, 0x19, 0xac, 0x0d, 0x70, 0x42, 0xea, + 0x3a, 0xec, 0xd2, 0xd9, 0x05, 0x33, 0x48, 0x70, 0xb4, 0x1a, 0x70, 0x1a, 0xf5, 0xe0, 0x34, 0x73, + 0xe0, 0x7c, 0xd9, 0x80, 0x8e, 0xbc, 0xac, 0xa7, 0xdb, 0xed, 0x66, 0xb7, 0xdb, 0xfd, 0xd7, 0x6f, + 0xea, 0x9b, 0x00, 0x3d, 0xfa, 0x5c, 0x23, 0x8f, 0x0f, 0xdd, 0x56, 0x34, 0xa4, 0x67, 0x40, 0xaa, + 0x81, 0xae, 0xcb, 0x4b, 0x30, 0x21, 0x12, 0x7c, 0x58, 0x9c, 0xb3, 0xeb, 0x0f, 0x39, 0x40, 0x16, + 0x6c, 0x55, 0x65, 0x7d, 0x01, 0xeb, 0x65, 0x80, 0xd7, 0x6e, 0xb6, 0x09, 0xb3, 0x07, 0x51, 0x14, + 0x28, 0xdb, 0x2d, 0x65, 0xb2, 0xe1, 0x72, 0x98, 0xca, 0xe7, 0x92, 0xd4, 0xc4, 0xfa, 0x4d, 0x83, + 0x4b, 0x9e, 0xff, 0x99, 0x97, 0x60, 0xb2, 0x29, 0xa7, 0x81, 0xac, 0x17, 0xa6, 0xdd, 0xf0, 0xca, + 0x67, 0x29, 0x25, 0xef, 0xf4, 0x4c, 0xde, 0x19, 0x30, 0xc3, 0xd3, 0xd3, 0x68, 0x51, 0xe6, 0x13, + 0x62, 0x6d, 0x66, 0xbd, 0x80, 0xb5, 0x12, 0xbf, 0xa7, 0x4d, 0x12, 0x99, 0x0c, 0xd5, 0x49, 0x22, + 0x3f, 0xad, 0x97, 0x1a, 0x5c, 0x92, 0xd7, 0xc2, 0xe1, 0xf0, 0x22, 0x8c, 0xf5, 0x4f, 0xbc, 0xad, + 0x7d, 0xa5, 0x1c, 0xe3, 0x8a, 0x1b, 0xaf, 0x9b, 0xbe, 0x77, 0x7f, 0x99, 0x05, 0xf6, 0x1a, 0x4d, + 0x78, 0xb9, 0x97, 0xbe, 0x6b, 0xa2, 0x35, 0x3e, 0x40, 0xf6, 0x81, 0xd9, 0x5c, 0x2f, 0x53, 0xc7, + 0x21, 0xba, 0x0e, 0x9d, 0xa7, 0xe2, 0x42, 0x89, 0x56, 0xb9, 0x91, 0x7a, 0xc5, 0x34, 0x57, 0x44, + 0xcf, 0xf4, 0xc9, 0xfb, 0x3a, 0x74, 0xc6, 0xa2, 0xcc, 0x95, 0x9d, 0xd4, 0xc2, 0xb7, 0xac, 0xd3, + 0x6d, 0x58, 0x18, 0xa8, 0xaf, 0x92, 0xe8, 0x72, 0xee, 0xb2, 0x2f, 0x8e, 0x6c, 0xd3, 0x28, 0x6f, + 0x88, 0x43, 0x74, 0x03, 0xe6, 0x63, 0xe5, 0xad, 0x11, 0x89, 0x55, 0xe5, 0x1e, 0x20, 0xcb, 0xa6, + 0xff, 0x04, 0x2e, 0x0f, 0xca, 0x5f, 0x15, 0xd0, 0xd5, 0xfa, 0x57, 0x07, 0x32, 0xa0, 0x75, 0x9e, + 0x49, 0x1c, 0xa2, 0x07, 0x80, 0x92, 0xc2, 0x45, 0x1f, 0x6d, 0xf0, 0x9e, 0xa5, 0x8f, 0x15, 0xe6, + 0x7f, 0x6b, 0x5a, 0xe3, 0x10, 0xf5, 0xc0, 0x18, 0x54, 0x5c, 0xa4, 0x90, 0x95, 0xf9, 0x7b, 0xa0, + 0xf4, 0xda, 0x6d, 0xfe, 0xef, 0x5c, 0x1b, 0xe6, 0xf7, 0xa0, 0x50, 0xde, 0x49, 0xbf, 0x4b, 0x6b, + 0x56, 0xe9, 0x77, 0x45, 0x5d, 0x78, 0x0a, 0xab, 0x83, 0x62, 0x95, 0x83, 0xca, 0x7b, 0xc9, 0x7d, + 0xdf, 0xac, 0x6b, 0x8e, 0x43, 0x74, 0x07, 0x96, 0xce, 0xb2, 0x07, 0x34, 0x12, 0xff, 0x91, 0x14, + 0x2b, 0x19, 0xd3, 0xac, 0x6a, 0x92, 0x4b, 0xce, 0x1d, 0x00, 0x72, 0xc9, 0xa5, 0x87, 0xb1, 0x5c, + 0x72, 0xc5, 0xc9, 0x71, 0x0c, 0x2b, 0x05, 0x6a, 0x44, 0x57, 0x78, 0x9f, 0x32, 0xb2, 0x37, 0x37, + 0xaa, 0x1b, 0xd9, 0x78, 0x83, 0x3c, 0xcf, 0xc8, 0xf1, 0xca, 0x88, 0xd0, 0xdc, 0xa8, 0x6e, 0x8c, + 0xc3, 0xdb, 0x4b, 0x8f, 0x16, 0x76, 0xd8, 0x9f, 0x59, 0xef, 0xd2, 0xdf, 0x27, 0x6d, 0xfa, 0x9f, + 0xd6, 0xf5, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0xdb, 0x12, 0xfa, 0x38, 0xe8, 0x1a, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 4859fc359..5b3deb002 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -3,8 +3,8 @@ option go_package = "./group;group"; package group; message CommonResp{ - int32 ErrorCode = 1; - string ErrorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; } message CreateGroupReq{ @@ -15,7 +15,8 @@ message CreateGroupReq{ string faceUrl = 5; string token = 6; string operationID = 7; - string CreatorUserID = 8; + string OpUserID = 8; + string Ext = 9; } @@ -23,9 +24,10 @@ message GroupAddMemberInfo{ string uid = 1; int32 setRole = 2; } + message CreateGroupResp{ - int32 ErrorCode = 1; - string ErrorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; string groupID = 3; } @@ -33,11 +35,12 @@ message GetGroupsInfoReq{ repeated string groupIDList = 1; string token = 2; string operationID = 3; - string UserID = 4; + string OpUserID = 4; } + message GetGroupsInfoResp{ - int32 ErrorCode = 1; - string ErrorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated GroupInfo data = 3; } @@ -49,11 +52,12 @@ message SetGroupInfoReq{ string faceUrl = 5; string token = 6; string operationID = 7; + string OpUserID = 8; } message GetGroupApplicationListReq { - string UID = 1; + string OpUserID = 1; string OperationID = 2; } @@ -92,6 +96,7 @@ message TransferGroupOwnerReq { string OldOwner = 2; string NewOwner = 3; string OperationID = 4; + string OpUserID = 5; } message TransferGroupOwnerResp{ @@ -104,6 +109,7 @@ message JoinGroupReq{ string message = 2; string token = 3; string OperationID = 4; + string OpUserID = 5; } message GroupApplicationResponseReq{ @@ -135,6 +141,7 @@ message SetOwnerGroupNickNameReq{ string nickName = 2; string OperationID = 3; string token = 4; + string OpUserID = 5; } @@ -142,6 +149,7 @@ message QuitGroupReq{ string groupID = 1; string operationID = 2; string token = 3; + string OpUserID = 4; } @@ -171,11 +179,12 @@ message GetGroupMemberListReq { string operationID = 3; int32 filter = 4; int32 nextSeq = 5; + string OpUserID = 6; } message GetGroupMemberListResp { - int32 errorCode = 1; - string errorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated GroupMemberFullInfo memberList = 3; int32 nextSeq = 4; } @@ -187,11 +196,12 @@ message GetGroupMembersInfoReq { repeated string memberList = 2; string token = 3; string operationID = 4; + string OpUserID = 5; } message GetGroupMembersInfoResp { - int32 errorCode = 1; - string errorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated GroupMemberFullInfo memberList = 3; } @@ -202,6 +212,7 @@ message KickGroupMemberReq { string reason = 3; string token = 4; string operationID = 5; + string OpUserID = 6; } message Id2Result { @@ -210,8 +221,8 @@ message Id2Result { } message KickGroupMemberResp { - int32 errorCode = 1; - string errorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated Id2Result id2result = 3; } @@ -219,6 +230,7 @@ message KickGroupMemberResp { message getJoinedGroupListReq { string token = 1; string operationID = 2; + string OpUserID = 3; } message GroupInfo { @@ -233,9 +245,9 @@ message GroupInfo { } message getJoinedGroupListResp{ - int32 errorCode = 1; - string errorMsg = 2; - repeated GroupInfo groupList = 3; + int32 ErrCode = 1; + string ErrorMsg = 2; + repeated GroupInfo GroupList = 3; } @@ -245,23 +257,25 @@ message inviteUserToGroupReq { string groupID = 3; string reason = 4; repeated string uidList = 5; + string OpUserID = 6; } message inviteUserToGroupResp { - int32 errorCode = 1; - string errorMsg = 2; - repeated Id2Result id2result = 3; // 0 ok, -1 error + int32 ErrCode = 1; + string ErrMsg = 2; + repeated Id2Result Id2Result = 3; // 0 ok, -1 error } message GetGroupAllMemberReq { string groupID = 1; string token = 2; string operationID = 3; + string OpUserID = 4; } message GetGroupAllMemberResp { - int32 errorCode = 1; - string errorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated GroupMemberFullInfo memberList = 3; }