mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-06-10 11:09:19 +08:00
Merge remote-tracking branch 'origin/errcode' into errcode
This commit is contained in:
commit
7c92de7899
11
internal/common/check/friend.go
Normal file
11
internal/common/check/friend.go
Normal file
@ -0,0 +1,11 @@
|
||||
package check
|
||||
|
||||
import (
|
||||
server_api_params "Open_IM/pkg/proto/sdk_ws"
|
||||
"context"
|
||||
"errors"
|
||||
)
|
||||
|
||||
func GetFriendsInfo(ctx context.Context, ownerUserID, friendUserID string) (*server_api_params.FriendInfo, error) {
|
||||
return nil, errors.New("TODO:GetUserInfo")
|
||||
}
|
@ -6,14 +6,17 @@ import (
|
||||
"Open_IM/pkg/common/constant"
|
||||
"Open_IM/pkg/common/http"
|
||||
"Open_IM/pkg/common/log"
|
||||
"Open_IM/pkg/common/tracelog"
|
||||
pbFriend "Open_IM/pkg/proto/friend"
|
||||
"context"
|
||||
|
||||
//"Open_IM/pkg/proto/msg"
|
||||
"Open_IM/pkg/utils"
|
||||
http2 "net/http"
|
||||
)
|
||||
|
||||
func callbackBeforeAddFriendV1(req *pbFriend.AddFriendReq) error {
|
||||
resp := callbackBeforeAddFriend(req)
|
||||
func callbackBeforeAddFriendV1(ctx context.Context, req *pbFriend.AddFriendReq) error {
|
||||
resp := callbackBeforeAddFriend(ctx, req)
|
||||
if resp.ErrCode != 0 {
|
||||
return (&constant.ErrInfo{
|
||||
ErrCode: resp.ErrCode,
|
||||
@ -23,28 +26,28 @@ func callbackBeforeAddFriendV1(req *pbFriend.AddFriendReq) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func callbackBeforeAddFriend(req *pbFriend.AddFriendReq) cbApi.CommonCallbackResp {
|
||||
callbackResp := cbApi.CommonCallbackResp{OperationID: req.CommID.OperationID}
|
||||
func callbackBeforeAddFriend(ctx context.Context, req *pbFriend.AddFriendReq) cbApi.CommonCallbackResp {
|
||||
callbackResp := cbApi.CommonCallbackResp{OperationID: tracelog.GetOperationID(ctx)}
|
||||
if !config.Config.Callback.CallbackBeforeAddFriend.Enable {
|
||||
return callbackResp
|
||||
}
|
||||
log.NewDebug(req.CommID.OperationID, utils.GetSelfFuncName(), req.String())
|
||||
|
||||
commonCallbackReq := &cbApi.CallbackBeforeAddFriendReq{
|
||||
CallbackCommand: constant.CallbackBeforeAddFriendCommand,
|
||||
FromUserID: req.CommID.FromUserID,
|
||||
ToUserID: req.CommID.ToUserID,
|
||||
FromUserID: req.FromUserID,
|
||||
ToUserID: req.ToUserID,
|
||||
ReqMsg: req.ReqMsg,
|
||||
OperationID: req.CommID.OperationID,
|
||||
OperationID: tracelog.GetOperationID(ctx),
|
||||
}
|
||||
resp := &cbApi.CallbackBeforeAddFriendResp{
|
||||
CommonCallbackResp: &callbackResp,
|
||||
}
|
||||
//utils.CopyStructFields(req, msg.MsgData)
|
||||
defer log.NewDebug(req.CommID.OperationID, utils.GetSelfFuncName(), commonCallbackReq, *resp)
|
||||
if err := http.CallBackPostReturn(config.Config.Callback.CallbackUrl, constant.CallbackBeforeAddFriendCommand, commonCallbackReq, resp, config.Config.Callback.CallbackBeforeAddFriend.CallbackTimeOut); err != nil {
|
||||
defer log.NewDebug(tracelog.GetOperationID(ctx), utils.GetSelfFuncName(), commonCallbackReq, *resp)
|
||||
if err := http.CallBackPostReturn(config.Config.Callback.CallbackUrl, constant.CallbackBeforeAddFriendCommand, commonCallbackReq, resp, config.Config.Callback.CallbackBeforeAddFriend); err != nil {
|
||||
callbackResp.ErrCode = http2.StatusInternalServerError
|
||||
callbackResp.ErrMsg = err.Error()
|
||||
if !config.Config.Callback.CallbackBeforeAddFriend.CallbackFailedContinue {
|
||||
if !*config.Config.Callback.CallbackBeforeAddFriend.CallbackFailedContinue {
|
||||
callbackResp.ActionCode = constant.ActionForbidden
|
||||
return callbackResp
|
||||
} else {
|
||||
|
@ -120,7 +120,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq
|
||||
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := callbackBeforeAddFriendV1(req); err != nil {
|
||||
if err := callbackBeforeAddFriendV1(ctx, req); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -140,7 +140,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq
|
||||
if err = s.FriendInterface.AddFriendRequest(ctx, req.FromUserID, req.ToUserID, req.ReqMsg, req.Ex); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.FriendApplicationNotification(req)
|
||||
chat.FriendApplicationNotification(ctx, req)
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
@ -177,7 +177,7 @@ func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.Res
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.FriendApplicationApprovedNotification(req)
|
||||
chat.FriendApplicationApprovedNotification(ctx, req)
|
||||
return resp, nil
|
||||
}
|
||||
if req.HandleResult == constant.FriendResponseRefuse {
|
||||
@ -185,7 +185,7 @@ func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.Res
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.FriendApplicationRejectedNotification(req)
|
||||
chat.FriendApplicationRejectedNotification(ctx, req)
|
||||
return resp, nil
|
||||
}
|
||||
return nil, constant.ErrArgs.Wrap("req.HandleResult != -1/1")
|
||||
@ -199,7 +199,7 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri
|
||||
if err := s.FriendInterface.Delete(ctx, req.OwnerUserID, req.FriendUserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.FriendDeletedNotification(req)
|
||||
chat.FriendDeletedNotification(ctx, req)
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
@ -211,7 +211,7 @@ func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFri
|
||||
if err := s.FriendInterface.UpdateRemark(ctx, req.OwnerUserID, req.FriendUserID, req.Remark); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.FriendRemarkSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.OwnerUserID, req.FriendUserID)
|
||||
chat.FriendRemarkSetNotification(ctx, req.OwnerUserID, req.FriendUserID)
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,7 @@
|
||||
package group
|
||||
|
||||
import (
|
||||
"Open_IM/pkg/common/constant"
|
||||
relation "Open_IM/pkg/common/db/mysql"
|
||||
pbGroup "Open_IM/pkg/proto/group"
|
||||
"Open_IM/pkg/common/tracelog"
|
||||
sdk_ws "Open_IM/pkg/proto/sdk_ws"
|
||||
"Open_IM/pkg/utils"
|
||||
"context"
|
||||
@ -12,32 +10,32 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func getDBGroupRequest(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (dbGroupRequest *relation.GroupRequest) {
|
||||
dbGroupRequest = &relation.GroupRequest{}
|
||||
utils.CopyStructFields(&dbGroupRequest, req)
|
||||
dbGroupRequest.UserID = req.FromUserID
|
||||
dbGroupRequest.HandleUserID = utils.OpUserID(ctx)
|
||||
dbGroupRequest.HandledTime = time.Now()
|
||||
return dbGroupRequest
|
||||
}
|
||||
|
||||
func getDBGroupMember(ctx context.Context, groupID, userID string) (dbGroupMember *relation.GroupMember, err error) {
|
||||
dbGroupMember = &relation.GroupMember{}
|
||||
|
||||
member := relation.GroupMember{}
|
||||
member.GroupID = groupID
|
||||
member.UserID = userID
|
||||
member.RoleLevel = constant.GroupOrdinaryUsers
|
||||
member.OperatorUserID = utils.OpUserID(ctx)
|
||||
|
||||
member.FaceURL = user.FaceURL
|
||||
member.Nickname = user.Nickname
|
||||
member.JoinSource = request.JoinSource
|
||||
member.InviterUserID = request.InviterUserID
|
||||
member.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
||||
|
||||
return dbGroupMember, nil
|
||||
}
|
||||
//func getDBGroupRequest(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (dbGroupRequest *relation.GroupRequest) {
|
||||
// dbGroupRequest = &relation.GroupRequest{}
|
||||
// utils.CopyStructFields(&dbGroupRequest, req)
|
||||
// dbGroupRequest.UserID = req.FromUserID
|
||||
// dbGroupRequest.HandleUserID = utils.OpUserID(ctx)
|
||||
// dbGroupRequest.HandledTime = time.Now()
|
||||
// return dbGroupRequest
|
||||
//}
|
||||
//
|
||||
//func getDBGroupMember(ctx context.Context, groupID, userID string) (dbGroupMember *relation.GroupMember, err error) {
|
||||
// dbGroupMember = &relation.GroupMember{}
|
||||
//
|
||||
// member := relation.GroupMember{}
|
||||
// member.GroupID = groupID
|
||||
// member.UserID = userID
|
||||
// member.RoleLevel = constant.GroupOrdinaryUsers
|
||||
// member.OperatorUserID = utils.OpUserID(ctx)
|
||||
//
|
||||
// member.FaceURL = user.FaceURL
|
||||
// member.Nickname = user.Nickname
|
||||
// member.JoinSource = request.JoinSource
|
||||
// member.InviterUserID = request.InviterUserID
|
||||
// member.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
||||
//
|
||||
// return dbGroupMember, nil
|
||||
//}
|
||||
|
||||
func getUsersInfo(ctx context.Context, userIDs []string) ([]*sdk_ws.UserInfo, error) {
|
||||
return nil, nil
|
||||
@ -59,7 +57,7 @@ func genGroupID(ctx context.Context, groupID string) string {
|
||||
if groupID != "" {
|
||||
return groupID
|
||||
}
|
||||
groupID = utils.Md5(utils.OperationID(ctx) + strconv.FormatInt(time.Now().UnixNano(), 10))
|
||||
groupID = utils.Md5(tracelog.GetOperationID(ctx) + strconv.FormatInt(time.Now().UnixNano(), 10))
|
||||
bi := big.NewInt(0)
|
||||
bi.SetString(groupID[0:8], 16)
|
||||
groupID = bi.String()
|
||||
|
@ -14,8 +14,8 @@ import (
|
||||
promePkg "Open_IM/pkg/common/prometheus"
|
||||
"Open_IM/pkg/common/token_verify"
|
||||
"Open_IM/pkg/common/tracelog"
|
||||
"fmt"
|
||||
|
||||
cp "Open_IM/internal/utils"
|
||||
"Open_IM/pkg/getcdv3"
|
||||
pbConversation "Open_IM/pkg/proto/conversation"
|
||||
pbGroup "Open_IM/pkg/proto/group"
|
||||
@ -144,7 +144,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
||||
return nil, constant.ErrArgs.Wrap("no group owner")
|
||||
}
|
||||
var userIDs []string
|
||||
for _, userID := range req.InitMemberList {
|
||||
for _, userID := range req.InitMembers {
|
||||
userIDs = append(userIDs, userID)
|
||||
}
|
||||
for _, userID := range req.AdminUserIDs {
|
||||
@ -179,12 +179,11 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
opUserID := utils.OpUserID(ctx)
|
||||
joinGroup := func(userID string, roleLevel int32) error {
|
||||
user := userMap[userID]
|
||||
groupMember := &relation.GroupMember{GroupID: group.GroupID, RoleLevel: roleLevel, OperatorUserID: opUserID, JoinSource: constant.JoinByInvitation, InviterUserID: opUserID}
|
||||
groupMember := &relation.GroupMember{GroupID: group.GroupID, RoleLevel: roleLevel, OperatorUserID: tracelog.GetOpUserID(ctx), JoinSource: constant.JoinByInvitation, InviterUserID: tracelog.GetOpUserID(ctx)}
|
||||
utils.CopyStructFields(&groupMember, user)
|
||||
if err := CallbackBeforeMemberJoinGroup(ctx, utils.OperationID(ctx), groupMember, group.Ex); err != nil {
|
||||
if err := CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), groupMember, group.Ex); err != nil {
|
||||
return err
|
||||
}
|
||||
groupMembers = append(groupMembers, groupMember)
|
||||
@ -198,7 +197,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
for _, userID := range req.InitMemberList {
|
||||
for _, userID := range req.InitMembers {
|
||||
if err := joinGroup(userID, constant.GroupOrdinaryUsers); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -212,11 +211,11 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
||||
if req.GroupInfo.GroupType == constant.SuperGroup {
|
||||
go func() {
|
||||
for _, userID := range userIDs {
|
||||
chat.SuperGroupNotification(utils.OperationID(ctx), userID, userID)
|
||||
chat.SuperGroupNotification(tracelog.GetOperationID(ctx), userID, userID)
|
||||
}
|
||||
}()
|
||||
} else {
|
||||
chat.GroupCreatedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), group.GroupID, userIDs)
|
||||
chat.GroupCreatedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), group.GroupID, userIDs)
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
@ -255,18 +254,18 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
|
||||
groupNode.OwnerUserID = groupOwnerUserID[group.GroupID]
|
||||
groupNode.CreateTime = group.CreateTime.UnixMilli()
|
||||
groupNode.NotificationUpdateTime = group.NotificationUpdateTime.UnixMilli()
|
||||
resp.GroupList = append(resp.GroupList, &groupNode)
|
||||
resp.Groups = append(resp.Groups, &groupNode)
|
||||
}
|
||||
resp.Total = int32(len(resp.GroupList))
|
||||
resp.Total = int32(len(resp.Groups))
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.InviteUserToGroupReq) (*pbGroup.InviteUserToGroupResp, error) {
|
||||
resp := &pbGroup.InviteUserToGroupResp{}
|
||||
if len(req.InvitedUserIDList) == 0 {
|
||||
if len(req.InvitedUserIDs) == 0 {
|
||||
return nil, constant.ErrArgs.Wrap("user empty")
|
||||
}
|
||||
if utils.IsDuplicateID(req.InvitedUserIDList) {
|
||||
if utils.IsDuplicateID(req.InvitedUserIDs) {
|
||||
return nil, constant.ErrArgs.Wrap("userID duplicate")
|
||||
}
|
||||
group, err := s.GroupInterface.TakeGroupByID(ctx, req.GroupID)
|
||||
@ -284,30 +283,30 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
|
||||
for i, member := range members {
|
||||
memberMap[member.GroupID] = members[i]
|
||||
}
|
||||
for _, userID := range req.InvitedUserIDList {
|
||||
for _, userID := range req.InvitedUserIDs {
|
||||
if _, ok := memberMap[userID]; ok {
|
||||
return nil, constant.ErrArgs.Wrap("user in group " + userID)
|
||||
}
|
||||
}
|
||||
userMap, err := getUserMap(ctx, req.InvitedUserIDList)
|
||||
userMap, err := getUserMap(ctx, req.InvitedUserIDs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, userID := range req.InvitedUserIDList {
|
||||
for _, userID := range req.InvitedUserIDs {
|
||||
if _, ok := userMap[userID]; !ok {
|
||||
return nil, constant.ErrUserIDNotFound.Wrap(userID)
|
||||
}
|
||||
}
|
||||
if group.NeedVerification == constant.AllNeedVerification {
|
||||
if !token_verify.IsAppManagerUid(ctx) {
|
||||
opUserID := utils.OpUserID(ctx)
|
||||
opUserID := tracelog.GetOpUserID(ctx)
|
||||
member, ok := memberMap[opUserID]
|
||||
if ok {
|
||||
if !ok {
|
||||
return nil, constant.ErrNoPermission.Wrap("not in group")
|
||||
}
|
||||
if !(member.RoleLevel == constant.GroupOwner || member.RoleLevel == constant.GroupAdmin) {
|
||||
var requests []*relation.GroupRequest
|
||||
for _, userID := range req.InvitedUserIDList {
|
||||
for _, userID := range req.InvitedUserIDs {
|
||||
requests = append(requests, &relation.GroupRequest{
|
||||
UserID: userID,
|
||||
GroupID: req.GroupID,
|
||||
@ -331,24 +330,25 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
|
||||
}
|
||||
}
|
||||
if group.GroupType == constant.SuperGroup {
|
||||
if err := s.GroupInterface.AddUserToSuperGroup(ctx, req.GroupID, req.InvitedUserIDList); err != nil {
|
||||
if err := s.GroupInterface.AddUserToSuperGroup(ctx, req.GroupID, req.InvitedUserIDs); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, userID := range req.InvitedUserIDList {
|
||||
chat.SuperGroupNotification(utils.OperationID(ctx), userID, userID)
|
||||
for _, userID := range req.InvitedUserIDs {
|
||||
chat.SuperGroupNotification(tracelog.GetOperationID(ctx), userID, userID)
|
||||
}
|
||||
} else {
|
||||
opUserID := tracelog.GetOpUserID(ctx)
|
||||
var groupMembers []*relation.GroupMember
|
||||
for _, userID := range req.InvitedUserIDList {
|
||||
for _, userID := range req.InvitedUserIDs {
|
||||
user := userMap[userID]
|
||||
var member relation.GroupMember
|
||||
utils.CopyStructFields(&member, user)
|
||||
member.GroupID = req.GroupID
|
||||
member.RoleLevel = constant.GroupOrdinaryUsers
|
||||
member.OperatorUserID = utils.OpUserID(ctx)
|
||||
member.InviterUserID = utils.OpUserID(ctx)
|
||||
member.OperatorUserID = opUserID
|
||||
member.InviterUserID = opUserID
|
||||
member.JoinSource = constant.JoinByInvitation
|
||||
if err := CallbackBeforeMemberJoinGroup(ctx, utils.OperationID(ctx), &member, group.Ex); err != nil {
|
||||
if err := CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), &member, group.Ex); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
groupMembers = append(groupMembers, &member)
|
||||
@ -356,7 +356,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
|
||||
if err := s.GroupInterface.CreateGroupMember(ctx, groupMembers); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.MemberInvitedNotification(utils.OperationID(ctx), req.GroupID, utils.OpUserID(ctx), req.Reason, req.InvitedUserIDList)
|
||||
chat.MemberInvitedNotification(tracelog.GetOperationID(ctx), req.GroupID, tracelog.GetOpUserID(ctx), req.Reason, req.InvitedUserIDs)
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
@ -379,7 +379,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro
|
||||
for _, member := range members {
|
||||
var node open_im_sdk.GroupMemberFullInfo
|
||||
utils.CopyStructFields(&node, member)
|
||||
resp.MemberList = append(resp.MemberList, &node)
|
||||
resp.Members = append(resp.Members, &node)
|
||||
}
|
||||
}
|
||||
return resp, nil
|
||||
@ -387,20 +387,14 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro
|
||||
|
||||
func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGroupMemberListReq) (*pbGroup.GetGroupMemberListResp, error) {
|
||||
resp := &pbGroup.GetGroupMemberListResp{}
|
||||
memberList, err := s.GroupInterface.GetGroupMemberFilterList(ctx, req.GroupID, req.Filter, req.NextSeq, 30)
|
||||
members, err := s.GroupInterface.GetGroupMemberFilterList(ctx, req.GroupID, req.Filter, req.Pagination.PageNumber, req.Pagination.ShowNumber)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, v := range memberList {
|
||||
var node open_im_sdk.GroupMemberFullInfo
|
||||
utils.CopyStructFields(&node, &v)
|
||||
resp.MemberList = append(resp.MemberList, &node)
|
||||
}
|
||||
//db operate get db sorted by join time
|
||||
if int32(len(memberList)) < 30 {
|
||||
resp.NextSeq = 0
|
||||
} else {
|
||||
resp.NextSeq = req.NextSeq + int32(len(memberList))
|
||||
for _, member := range members {
|
||||
var info open_im_sdk.GroupMemberFullInfo
|
||||
utils.CopyStructFields(&info, &member)
|
||||
resp.Members = append(resp.Members, &info)
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
@ -415,132 +409,86 @@ func (s *groupServer) getGroupUserLevel(groupID, userID string) (int, error) {
|
||||
if opInfo.RoleLevel == constant.GroupOrdinaryUsers {
|
||||
opFlag = 0
|
||||
} else if opInfo.RoleLevel == constant.GroupOwner {
|
||||
opFlag = 2 //owner
|
||||
opFlag = 2 // owner
|
||||
} else {
|
||||
opFlag = 3 //admin
|
||||
opFlag = 3 // admin
|
||||
}
|
||||
} else {
|
||||
opFlag = 1 //app manager
|
||||
opFlag = 1 // app manager
|
||||
}
|
||||
return opFlag, nil
|
||||
}
|
||||
|
||||
func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) {
|
||||
resp := &pbGroup.KickGroupMemberResp{}
|
||||
|
||||
groupInfo, err := rocksCache.GetGroupInfoFromCache(ctx, req.GroupID)
|
||||
group, err := s.GroupInterface.TakeGroupByID(ctx, req.GroupID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var okUserIDList []string
|
||||
if groupInfo.GroupType != constant.SuperGroup {
|
||||
opFlag := 0
|
||||
if !token_verify.IsManagerUserID(utils.OpUserID(ctx)) {
|
||||
opInfo, err := rocksCache.GetGroupMemberInfoFromCache(ctx, req.GroupID, utils.OpUserID(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if opInfo.RoleLevel == constant.GroupOrdinaryUsers {
|
||||
return nil, utils.Wrap(constant.ErrNoPermission, "")
|
||||
} else if opInfo.RoleLevel == constant.GroupOwner {
|
||||
opFlag = 2 //owner
|
||||
} else {
|
||||
opFlag = 3 //admin
|
||||
}
|
||||
} else {
|
||||
opFlag = 1 //app manager
|
||||
}
|
||||
|
||||
//op is group owner?
|
||||
if len(req.KickedUserIDList) == 0 {
|
||||
//log.NewError(req.OperationID, "failed, kick list 0")
|
||||
//return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}, nil
|
||||
return nil, utils.Wrap(constant.ErrArgs, "")
|
||||
}
|
||||
if err := s.DelGroupAndUserCache(ctx, req.GroupID, req.KickedUserIDList); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
//remove
|
||||
for _, v := range req.KickedUserIDList {
|
||||
kickedInfo, err := rocksCache.GetGroupMemberInfoFromCache(ctx, req.GroupID, v)
|
||||
if err != nil {
|
||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
|
||||
tracelog.SetCtxInfo(ctx, "GetGroupMemberInfoFromCache", err, "groupID", req.GroupID, "userID", v)
|
||||
continue
|
||||
}
|
||||
|
||||
if kickedInfo.RoleLevel == constant.GroupAdmin && opFlag == 3 {
|
||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
|
||||
tracelog.SetCtxInfo(ctx, "", nil, "msg", "is constant.GroupAdmin, can't kicked", "groupID", req.GroupID, "userID", v)
|
||||
continue
|
||||
}
|
||||
if kickedInfo.RoleLevel == constant.GroupOwner && opFlag != 1 {
|
||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
|
||||
tracelog.SetCtxInfo(ctx, "", nil, "msg", "is constant.GroupOwner, can't kicked", "groupID", req.GroupID, "userID", v)
|
||||
continue
|
||||
}
|
||||
|
||||
err = relation.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, v)
|
||||
tracelog.SetCtxInfo(ctx, "RemoveGroupMember", err, "groupID", req.GroupID, "userID", v)
|
||||
if err != nil {
|
||||
log.NewError(utils.OperationID(ctx), "RemoveGroupMember failed ", err.Error(), req.GroupID, v)
|
||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
|
||||
} else {
|
||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: 0})
|
||||
okUserIDList = append(okUserIDList, v)
|
||||
}
|
||||
}
|
||||
var reqPb pbUser.SetConversationReq
|
||||
var c pbConversation.Conversation
|
||||
for _, v := range okUserIDList {
|
||||
reqPb.OperationID = utils.OperationID(ctx)
|
||||
c.OwnerUserID = v
|
||||
c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType)
|
||||
c.ConversationType = constant.GroupChatType
|
||||
c.GroupID = req.GroupID
|
||||
c.IsNotInGroup = true
|
||||
reqPb.Conversation = &c
|
||||
etcdConn, err := getcdv3.GetConn(ctx, config.Config.RpcRegisterName.OpenImUserName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client := pbUser.NewUserClient(etcdConn)
|
||||
respPb, err := client.SetConversation(context.Background(), &reqPb)
|
||||
tracelog.SetCtxInfo(ctx, "SetConversation", err, "req", &reqPb, "resp", respPb)
|
||||
}
|
||||
} else {
|
||||
okUserIDList = req.KickedUserIDList
|
||||
if err := db.DB.RemoverUserFromSuperGroup(req.GroupID, okUserIDList); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(req.KickedUserIDs) == 0 {
|
||||
return nil, constant.ErrArgs.Wrap("KickedUserIDs empty")
|
||||
}
|
||||
|
||||
if groupInfo.GroupType != constant.SuperGroup {
|
||||
for _, userID := range okUserIDList {
|
||||
if err := rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, userID); err != nil {
|
||||
tracelog.SetCtxInfo(ctx, "DelGroupMemberInfoFromCache", err, "groupID", req.GroupID, "userID", userID)
|
||||
}
|
||||
}
|
||||
chat.MemberKickedNotification(req, okUserIDList)
|
||||
} else {
|
||||
for _, userID := range okUserIDList {
|
||||
if err = rocksCache.DelJoinedSuperGroupIDListFromCache(ctx, userID); err != nil {
|
||||
tracelog.SetCtxInfo(ctx, "DelGroupMemberInfoFromCache", err, "userID", userID)
|
||||
}
|
||||
if utils.IsDuplicateStringSlice(req.KickedUserIDs) {
|
||||
return nil, constant.ErrArgs.Wrap("KickedUserIDs duplicate")
|
||||
}
|
||||
opUserID := tracelog.GetOpUserID(ctx)
|
||||
if utils.IsContain(opUserID, req.KickedUserIDs) {
|
||||
return nil, constant.ErrArgs.Wrap("opUserID in KickedUserIDs")
|
||||
}
|
||||
if group.GroupType == constant.SuperGroup {
|
||||
if err := s.GroupInterface.DelSuperGroupMember(ctx, req.GroupID, req.KickedUserIDs); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
go func() {
|
||||
for _, v := range req.KickedUserIDList {
|
||||
chat.SuperGroupNotification(utils.OperationID(ctx), v, v)
|
||||
for _, userID := range req.KickedUserIDs {
|
||||
chat.SuperGroupNotification(tracelog.GetOperationID(ctx), userID, userID)
|
||||
}
|
||||
}()
|
||||
|
||||
} else {
|
||||
members, err := s.GroupInterface.FindGroupMembersByID(ctx, req.GroupID, append(req.KickedUserIDs, opUserID))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
memberMap := make(map[string]*relation.GroupMember)
|
||||
for i, member := range members {
|
||||
memberMap[member.UserID] = members[i]
|
||||
}
|
||||
for _, userID := range req.KickedUserIDs {
|
||||
if _, ok := memberMap[userID]; !ok {
|
||||
return nil, constant.ErrUserIDNotFound.Wrap(userID)
|
||||
}
|
||||
}
|
||||
if !token_verify.IsAppManagerUid(ctx) {
|
||||
member := memberMap[opUserID]
|
||||
if member == nil {
|
||||
return nil, constant.ErrNoPermission.Wrap(fmt.Sprintf("opUserID %s no in group", opUserID))
|
||||
}
|
||||
switch member.RoleLevel {
|
||||
case constant.GroupOwner:
|
||||
case constant.GroupAdmin:
|
||||
for _, member := range members {
|
||||
if member.UserID == opUserID {
|
||||
continue
|
||||
}
|
||||
if member.RoleLevel == constant.GroupOwner || member.RoleLevel == constant.GroupAdmin {
|
||||
return nil, constant.ErrNoPermission.Wrap("userID:" + member.UserID)
|
||||
}
|
||||
}
|
||||
default:
|
||||
return nil, constant.ErrNoPermission.Wrap("opUserID is OrdinaryUser")
|
||||
}
|
||||
}
|
||||
if err := s.GroupInterface.DelGroupMember(ctx, group.GroupID, req.KickedUserIDs); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.MemberKickedNotification(req, req.KickedUserIDs)
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetGroupMembersInfoReq) (*pbGroup.GetGroupMembersInfoResp, error) {
|
||||
resp := &pbGroup.GetGroupMembersInfoResp{}
|
||||
members, err := s.GroupInterface.GetGroupMemberListByUserID(ctx, req.GroupID, req.MemberList)
|
||||
members, err := s.GroupInterface.GetGroupMemberListByUserID(ctx, req.GroupID, req.Members)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -548,7 +496,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG
|
||||
var memberNode open_im_sdk.GroupMemberFullInfo
|
||||
utils.CopyStructFields(&memberNode, member)
|
||||
memberNode.JoinTime = member.JoinTime.UnixMilli()
|
||||
resp.MemberList = append(resp.MemberList, &memberNode)
|
||||
resp.Members = append(resp.Members, &memberNode)
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
@ -578,15 +526,51 @@ func FillPublicUserInfoByUserID(operationID, userID string, userInfo *open_im_sd
|
||||
|
||||
func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) {
|
||||
resp := &pbGroup.GetGroupApplicationListResp{}
|
||||
reply, err := relation.GetRecvGroupApplicationList(req.FromUserID)
|
||||
groupRequests, err := s.GroupInterface.GetGroupRecvApplicationList(ctx, req.FromUserID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(groupRequests) == 0 {
|
||||
return resp, nil
|
||||
}
|
||||
var (
|
||||
userIDs []string
|
||||
groupIDs []string
|
||||
)
|
||||
for _, gr := range groupRequests {
|
||||
userIDs = append(userIDs, gr.UserID)
|
||||
groupIDs = append(groupIDs, gr.GroupID)
|
||||
}
|
||||
userMap, err := getUserMap(ctx, userIDs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, userID := range userIDs {
|
||||
if _, ok := userMap[userID]; !ok {
|
||||
return nil, constant.ErrUserIDNotFound.Wrap(userID)
|
||||
}
|
||||
}
|
||||
groups, err := s.GroupInterface.FindGroupsByID(ctx, groupIDs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
groupMap := make(map[string]*relation.Group)
|
||||
for i, group := range groups {
|
||||
groupMap[group.GroupID] = groups[i]
|
||||
}
|
||||
|
||||
for _, gr := range groupRequests {
|
||||
groupRequest := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}}
|
||||
utils.CopyStructFields(&groupRequest, gr)
|
||||
getUserMap()
|
||||
|
||||
}
|
||||
|
||||
var errResult error
|
||||
tracelog.SetCtxInfo(ctx, "GetRecvGroupApplicationList", nil, " FromUserID: ", req.FromUserID, "GroupApplicationList: ", reply)
|
||||
for _, v := range reply {
|
||||
tracelog.SetCtxInfo(ctx, "GetRecvGroupApplicationList", nil, " FromUserID: ", req.FromUserID, "GroupApplicationList: ", groupRequests)
|
||||
for _, v := range groupRequests {
|
||||
node := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}}
|
||||
err := FillGroupInfoByGroupID(utils.OperationID(ctx), v.GroupID, node.GroupInfo)
|
||||
err := FillGroupInfoByGroupID(tracelog.GetOperationID(ctx), v.GroupID, node.GroupInfo)
|
||||
if err != nil {
|
||||
if !errors.Is(errors.Unwrap(err), constant.ErrDismissedAlready) {
|
||||
errResult = err
|
||||
@ -594,7 +578,7 @@ func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbGroup.
|
||||
continue
|
||||
}
|
||||
tracelog.SetCtxInfo(ctx, "FillGroupInfoByGroupID ", nil, " groupID: ", v.GroupID, " groupInfo: ", node.GroupInfo)
|
||||
err = FillPublicUserInfoByUserID(utils.OperationID(ctx), v.UserID, node.UserInfo)
|
||||
err = FillPublicUserInfoByUserID(tracelog.GetOperationID(ctx), v.UserID, node.UserInfo)
|
||||
if err != nil {
|
||||
errResult = err
|
||||
continue
|
||||
@ -639,7 +623,7 @@ func CheckPermission(ctx context.Context, groupID string, userID string) (err er
|
||||
func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) {
|
||||
resp := &pbGroup.GroupApplicationResponseResp{}
|
||||
|
||||
if err := CheckPermission(ctx, req.GroupID, utils.OpUserID(ctx)); err != nil {
|
||||
if err := CheckPermission(ctx, req.GroupID, tracelog.GetOpUserID(ctx)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
groupRequest := getDBGroupRequest(ctx, req)
|
||||
@ -655,7 +639,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = CallbackBeforeMemberJoinGroup(ctx, utils.OperationID(ctx), member, groupInfo.Ex)
|
||||
err = CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), member, groupInfo.Ex)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -663,12 +647,12 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
etcdCacheConn, err := fault_tolerant.GetDefaultConn(config.Config.RpcRegisterName.OpenImCacheName, utils.OperationID(ctx))
|
||||
etcdCacheConn, err := fault_tolerant.GetDefaultConn(config.Config.RpcRegisterName.OpenImCacheName, tracelog.GetOperationID(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cacheClient := pbCache.NewCacheClient(etcdCacheConn)
|
||||
cacheResp, err := cacheClient.DelGroupMemberIDListFromCache(context.Background(), &pbCache.DelGroupMemberIDListFromCacheReq{OperationID: utils.OperationID(ctx), GroupID: req.GroupID})
|
||||
cacheResp, err := cacheClient.DelGroupMemberIDListFromCache(context.Background(), &pbCache.DelGroupMemberIDListFromCacheReq{OperationID: tracelog.GetOperationID(ctx), GroupID: req.GroupID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -695,7 +679,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup
|
||||
func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.JoinGroupResp, error) {
|
||||
resp := &pbGroup.JoinGroupResp{}
|
||||
|
||||
if _, err := relation.GetUserByUserID(utils.OpUserID(ctx)); err != nil {
|
||||
if _, err := relation.GetUserByUserID(tracelog.GetOpUserID(ctx)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
groupInfo, err := rocksCache.GetGroupInfoFromCache(ctx, req.GroupID)
|
||||
@ -708,17 +692,17 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
|
||||
|
||||
if groupInfo.NeedVerification == constant.Directly {
|
||||
if groupInfo.GroupType != constant.SuperGroup {
|
||||
us, err := relation.GetUserByUserID(utils.OpUserID(ctx))
|
||||
us, err := relation.GetUserByUserID(tracelog.GetOpUserID(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
//to group member
|
||||
groupMember := relation.GroupMember{GroupID: req.GroupID, RoleLevel: constant.GroupOrdinaryUsers, OperatorUserID: utils.OpUserID(ctx)}
|
||||
groupMember := relation.GroupMember{GroupID: req.GroupID, RoleLevel: constant.GroupOrdinaryUsers, OperatorUserID: tracelog.GetOpUserID(ctx)}
|
||||
utils.CopyStructFields(&groupMember, us)
|
||||
if err := CallbackBeforeMemberJoinGroup(ctx, utils.OperationID(ctx), &groupMember, groupInfo.Ex); err != nil {
|
||||
if err := CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), &groupMember, groupInfo.Ex); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := s.DelGroupAndUserCache(ctx, req.GroupID, []string{utils.OpUserID(ctx)}); err != nil {
|
||||
if err := s.DelGroupAndUserCache(ctx, req.GroupID, []string{tracelog.GetOpUserID(ctx)}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = relation.InsertIntoGroupMember(groupMember)
|
||||
@ -734,8 +718,8 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
|
||||
}
|
||||
var reqPb pbUser.SetConversationReq
|
||||
var c pbConversation.Conversation
|
||||
reqPb.OperationID = utils.OperationID(ctx)
|
||||
c.OwnerUserID = utils.OpUserID(ctx)
|
||||
reqPb.OperationID = tracelog.GetOperationID(ctx)
|
||||
c.OwnerUserID = tracelog.GetOpUserID(ctx)
|
||||
c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, sessionType)
|
||||
c.ConversationType = int32(sessionType)
|
||||
c.GroupID = req.GroupID
|
||||
@ -749,7 +733,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
|
||||
client := pbUser.NewUserClient(etcdConn)
|
||||
respPb, err := client.SetConversation(context.Background(), &reqPb)
|
||||
tracelog.SetCtxInfo(ctx, "SetConversation", err, "req", reqPb, "resp", respPb)
|
||||
chat.MemberEnterDirectlyNotification(req.GroupID, utils.OpUserID(ctx), utils.OperationID(ctx))
|
||||
chat.MemberEnterDirectlyNotification(req.GroupID, tracelog.GetOpUserID(ctx), tracelog.GetOperationID(ctx))
|
||||
return resp, nil
|
||||
} else {
|
||||
constant.SetErrorForResp(constant.ErrGroupTypeNotSupport, resp.CommonResp)
|
||||
@ -757,7 +741,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
|
||||
}
|
||||
}
|
||||
var groupRequest relation.GroupRequest
|
||||
groupRequest.UserID = utils.OpUserID(ctx)
|
||||
groupRequest.UserID = tracelog.GetOpUserID(ctx)
|
||||
groupRequest.ReqMsg = req.ReqMessage
|
||||
groupRequest.GroupID = req.GroupID
|
||||
groupRequest.JoinSource = req.JoinSource
|
||||
@ -777,31 +761,31 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq)
|
||||
return nil, err
|
||||
}
|
||||
if groupInfo.GroupType != constant.SuperGroup {
|
||||
_, err = rocksCache.GetGroupMemberInfoFromCache(ctx, req.GroupID, utils.OpUserID(ctx))
|
||||
_, err = rocksCache.GetGroupMemberInfoFromCache(ctx, req.GroupID, tracelog.GetOpUserID(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := s.DelGroupAndUserCache(ctx, req.GroupID, []string{utils.OpUserID(ctx)}); err != nil {
|
||||
if err := s.DelGroupAndUserCache(ctx, req.GroupID, []string{tracelog.GetOpUserID(ctx)}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = relation.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, utils.OpUserID(ctx))
|
||||
err = relation.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
okUserIDList := []string{utils.OpUserID(ctx)}
|
||||
okUserIDList := []string{tracelog.GetOpUserID(ctx)}
|
||||
if err := db.DB.RemoverUserFromSuperGroup(req.GroupID, okUserIDList); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
if groupInfo.GroupType != constant.SuperGroup {
|
||||
_ = rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, utils.OpUserID(ctx))
|
||||
_ = rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, tracelog.GetOpUserID(ctx))
|
||||
chat.MemberQuitNotification(req)
|
||||
} else {
|
||||
_ = rocksCache.DelJoinedSuperGroupIDListFromCache(ctx, utils.OpUserID(ctx))
|
||||
_ = rocksCache.DelJoinedSuperGroupIDListFromCache(ctx, tracelog.GetOpUserID(ctx))
|
||||
_ = rocksCache.DelGroupMemberListHashFromCache(ctx, req.GroupID)
|
||||
chat.SuperGroupNotification(utils.OperationID(ctx), utils.OpUserID(ctx), utils.OpUserID(ctx))
|
||||
chat.SuperGroupNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), tracelog.GetOpUserID(ctx))
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
@ -870,7 +854,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
|
||||
var groupInfo relation.Group
|
||||
utils.CopyStructFields(&groupInfo, req.GroupInfoForSet)
|
||||
if req.GroupInfoForSet.Notification != "" {
|
||||
groupInfo.NotificationUserID = utils.OpUserID(ctx)
|
||||
groupInfo.NotificationUserID = tracelog.GetOpUserID(ctx)
|
||||
groupInfo.NotificationUpdateTime = time.Now()
|
||||
}
|
||||
if err := rocksCache.DelGroupInfoFromCache(ctx, req.GroupInfoForSet.GroupID); err != nil {
|
||||
@ -881,11 +865,11 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
|
||||
return nil, err
|
||||
}
|
||||
if changedType != 0 {
|
||||
chat.GroupInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupInfoForSet.GroupID, groupName, notification, introduction, faceURL, req.GroupInfoForSet.NeedVerification)
|
||||
chat.GroupInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupInfoForSet.GroupID, groupName, notification, introduction, faceURL, req.GroupInfoForSet.NeedVerification)
|
||||
}
|
||||
if req.GroupInfoForSet.Notification != "" {
|
||||
//get group member user id
|
||||
getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: utils.OperationID(ctx), GroupID: req.GroupInfoForSet.GroupID}
|
||||
getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: tracelog.GetOperationID(ctx), GroupID: req.GroupInfoForSet.GroupID}
|
||||
etcdConn, err := getcdv3.GetConn(ctx, config.Config.RpcRegisterName.OpenImCacheName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -900,13 +884,13 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
|
||||
}
|
||||
var conversationReq pbConversation.ModifyConversationFieldReq
|
||||
conversation := pbConversation.Conversation{
|
||||
OwnerUserID: utils.OpUserID(ctx),
|
||||
OwnerUserID: tracelog.GetOpUserID(ctx),
|
||||
ConversationID: utils.GetConversationIDBySessionType(req.GroupInfoForSet.GroupID, constant.GroupChatType),
|
||||
ConversationType: constant.GroupChatType,
|
||||
GroupID: req.GroupInfoForSet.GroupID,
|
||||
}
|
||||
conversationReq.Conversation = &conversation
|
||||
conversationReq.OperationID = utils.OperationID(ctx)
|
||||
conversationReq.OperationID = tracelog.GetOperationID(ctx)
|
||||
conversationReq.FieldType = constant.FieldGroupAtType
|
||||
conversation.GroupAtType = constant.GroupNotification
|
||||
conversationReq.UserIDList = cacheResp.UserIDList
|
||||
@ -1019,7 +1003,7 @@ func (s *groupServer) GetGroupMembersCMS(ctx context.Context, req *pbGroup.GetGr
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
log.NewInfo(utils.OperationID(ctx), groupMembersCount)
|
||||
log.NewInfo(tracelog.GetOperationID(ctx), groupMembersCount)
|
||||
resp.MemberNums = int32(groupMembersCount)
|
||||
for _, groupMember := range groupMembers {
|
||||
member := open_im_sdk.GroupMemberFullInfo{}
|
||||
@ -1064,7 +1048,7 @@ func (s *groupServer) GetUserReqApplicationList(ctx context.Context, req *pbGrou
|
||||
func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGroupReq) (*pbGroup.DismissGroupResp, error) {
|
||||
resp := &pbGroup.DismissGroupResp{}
|
||||
|
||||
if !token_verify.IsManagerUserID(utils.OpUserID(ctx)) && !relation.IsGroupOwnerAdmin(req.GroupID, utils.OpUserID(ctx)) {
|
||||
if !token_verify.IsManagerUserID(tracelog.GetOpUserID(ctx)) && !relation.IsGroupOwnerAdmin(req.GroupID, tracelog.GetOpUserID(ctx)) {
|
||||
return nil, utils.Wrap(constant.ErrIdentity, "")
|
||||
}
|
||||
|
||||
@ -1092,7 +1076,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou
|
||||
var reqPb pbUser.SetConversationReq
|
||||
var c pbConversation.Conversation
|
||||
for _, v := range memberList {
|
||||
reqPb.OperationID = utils.OperationID(ctx)
|
||||
reqPb.OperationID = tracelog.GetOperationID(ctx)
|
||||
c.OwnerUserID = v.UserID
|
||||
c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType)
|
||||
c.ConversationType = constant.GroupChatType
|
||||
@ -1121,7 +1105,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou
|
||||
func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) {
|
||||
resp := &pbGroup.MuteGroupMemberResp{}
|
||||
|
||||
opFlag, err := s.getGroupUserLevel(req.GroupID, utils.OpUserID(ctx))
|
||||
opFlag, err := s.getGroupUserLevel(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1149,14 +1133,14 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.GroupMemberMutedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID, req.MutedSeconds)
|
||||
chat.GroupMemberMutedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID, req.MutedSeconds)
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) {
|
||||
resp := &pbGroup.CancelMuteGroupMemberResp{}
|
||||
|
||||
opFlag, err := s.getGroupUserLevel(req.GroupID, utils.OpUserID(ctx))
|
||||
opFlag, err := s.getGroupUserLevel(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1184,14 +1168,14 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.GroupMemberCancelMutedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
||||
chat.GroupMemberCancelMutedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) {
|
||||
resp := &pbGroup.MuteGroupResp{}
|
||||
|
||||
opFlag, err := s.getGroupUserLevel(req.GroupID, utils.OpUserID(ctx))
|
||||
opFlag, err := s.getGroupUserLevel(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1224,14 +1208,14 @@ func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
chat.GroupMutedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID)
|
||||
chat.GroupMutedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID)
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) {
|
||||
resp := &pbGroup.CancelMuteGroupResp{}
|
||||
|
||||
opFlag, err := s.getGroupUserLevel(req.GroupID, utils.OpUserID(ctx))
|
||||
opFlag, err := s.getGroupUserLevel(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1251,7 +1235,7 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu
|
||||
// errMsg := req.OperationID + " mutedInfo.RoleLevel == constant.GroupAdmin " + req.GroupID + req.OpUserID + err.Error()
|
||||
// return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil
|
||||
//}
|
||||
log.Debug(utils.OperationID(ctx), "UpdateGroupInfoDefaultZero ", req.GroupID, map[string]interface{}{"status": constant.GroupOk})
|
||||
log.Debug(tracelog.GetOperationID(ctx), "UpdateGroupInfoDefaultZero ", req.GroupID, map[string]interface{}{"status": constant.GroupOk})
|
||||
if err := rocksCache.DelGroupInfoFromCache(ctx, req.GroupID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1259,13 +1243,13 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.GroupCancelMutedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID)
|
||||
chat.GroupCancelMutedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID)
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.SetGroupMemberNicknameReq) (*pbGroup.SetGroupMemberNicknameResp, error) {
|
||||
resp := &pbGroup.SetGroupMemberNicknameResp{}
|
||||
if utils.OpUserID(ctx) != req.UserID && !token_verify.IsManagerUserID(utils.OpUserID(ctx)) {
|
||||
if tracelog.GetOpUserID(ctx) != req.UserID && !token_verify.IsManagerUserID(tracelog.GetOpUserID(ctx)) {
|
||||
return nil, utils.Wrap(constant.ErrIdentity, "")
|
||||
}
|
||||
cbReq := &pbGroup.SetGroupMemberInfoReq{
|
||||
@ -1297,7 +1281,7 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S
|
||||
if err := relation.UpdateGroupMemberInfo(groupMemberInfo); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.GroupMemberInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
||||
chat.GroupMemberInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
@ -1336,13 +1320,13 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr
|
||||
switch req.RoleLevel.Value {
|
||||
case constant.GroupOrdinaryUsers:
|
||||
//msg.GroupMemberRoleLevelChangeNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID, constant.GroupMemberSetToOrdinaryUserNotification)
|
||||
chat.GroupMemberInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
||||
chat.GroupMemberInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||
case constant.GroupAdmin, constant.GroupOwner:
|
||||
//msg.GroupMemberRoleLevelChangeNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID, constant.GroupMemberSetToAdminNotification)
|
||||
chat.GroupMemberInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
||||
chat.GroupMemberInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||
}
|
||||
} else {
|
||||
chat.GroupMemberInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
||||
chat.GroupMemberInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
@ -4,9 +4,8 @@ import (
|
||||
"Open_IM/internal/common/check"
|
||||
"Open_IM/pkg/common/config"
|
||||
"Open_IM/pkg/common/constant"
|
||||
imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
||||
"Open_IM/pkg/common/log"
|
||||
utils2 "Open_IM/pkg/common/utils"
|
||||
"Open_IM/pkg/common/tracelog"
|
||||
pbFriend "Open_IM/pkg/proto/friend"
|
||||
open_im_sdk "Open_IM/pkg/proto/sdk_ws"
|
||||
"Open_IM/pkg/utils"
|
||||
@ -92,82 +91,83 @@ func friendNotification(operationID, fromUserID, toUserID string, contentType in
|
||||
Notification(&n)
|
||||
}
|
||||
|
||||
func FriendApplicationNotification(operationID string, req *pbFriend.AddFriendReq) {
|
||||
func FriendApplicationNotification(ctx context.Context, req *pbFriend.AddFriendReq) {
|
||||
FriendApplicationTips := open_im_sdk.FriendApplicationTips{FromToUserID: &open_im_sdk.FromToUserID{}}
|
||||
FriendApplicationTips.FromToUserID.FromUserID = req.FromUserID
|
||||
FriendApplicationTips.FromToUserID.ToUserID = req.ToUserID
|
||||
friendNotification(operationID, req.FromUserID, req.ToUserID, constant.FriendApplicationNotification, &FriendApplicationTips)
|
||||
friendNotification(tracelog.GetOperationID(ctx), req.FromUserID, req.ToUserID, constant.FriendApplicationNotification, &FriendApplicationTips)
|
||||
}
|
||||
|
||||
func FriendApplicationApprovedNotification(operationID string, req *pbFriend.RespondFriendApplyReq) {
|
||||
func FriendApplicationApprovedNotification(ctx context.Context, req *pbFriend.RespondFriendApplyReq) {
|
||||
FriendApplicationApprovedTips := open_im_sdk.FriendApplicationApprovedTips{FromToUserID: &open_im_sdk.FromToUserID{}}
|
||||
FriendApplicationApprovedTips.FromToUserID.FromUserID = req.FromUserID
|
||||
FriendApplicationApprovedTips.FromToUserID.ToUserID = req.ToUserID
|
||||
FriendApplicationApprovedTips.HandleMsg = req.HandleMsg
|
||||
friendNotification(operationID, req.ToUserID, req.FromUserID, constant.FriendApplicationApprovedNotification, &FriendApplicationApprovedTips)
|
||||
friendNotification(tracelog.GetOperationID(ctx), req.ToUserID, req.FromUserID, constant.FriendApplicationApprovedNotification, &FriendApplicationApprovedTips)
|
||||
}
|
||||
|
||||
func FriendApplicationRejectedNotification(operationID string, req *pbFriend.RespondFriendApplyReq) {
|
||||
func FriendApplicationRejectedNotification(ctx context.Context, req *pbFriend.RespondFriendApplyReq) {
|
||||
FriendApplicationApprovedTips := open_im_sdk.FriendApplicationApprovedTips{FromToUserID: &open_im_sdk.FromToUserID{}}
|
||||
FriendApplicationApprovedTips.FromToUserID.FromUserID = req.FromUserID
|
||||
FriendApplicationApprovedTips.FromToUserID.ToUserID = req.ToUserID
|
||||
FriendApplicationApprovedTips.HandleMsg = req.HandleMsg
|
||||
friendNotification(operationID, req.ToUserID, req.FromUserID, constant.FriendApplicationRejectedNotification, &FriendApplicationApprovedTips)
|
||||
friendNotification(tracelog.GetOperationID(ctx), req.ToUserID, req.FromUserID, constant.FriendApplicationRejectedNotification, &FriendApplicationApprovedTips)
|
||||
}
|
||||
|
||||
func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) {
|
||||
func FriendAddedNotification(ctx context.Context, operationID, opUserID, fromUserID, toUserID string) {
|
||||
friendAddedTips := open_im_sdk.FriendAddedTips{Friend: &open_im_sdk.FriendInfo{}, OpUser: &open_im_sdk.PublicUserInfo{}}
|
||||
user, err := imdb.GetUserByUserID(opUserID)
|
||||
user, err := check.GetUsersInfo(context.Background(), opUserID)
|
||||
if err != nil {
|
||||
log.NewError(operationID, "GetUserByUserID failed ", err.Error(), opUserID)
|
||||
return
|
||||
}
|
||||
utils2.UserDBCopyOpenIMPublicUser(friendAddedTips.OpUser, user)
|
||||
friend, err := imdb.GetFriendRelationshipFromFriend(fromUserID, toUserID)
|
||||
if err != nil {
|
||||
log.NewError(operationID, "GetFriendRelationshipFromFriend failed ", err.Error(), fromUserID, toUserID)
|
||||
return
|
||||
}
|
||||
utils2.FriendDBCopyOpenIM(friendAddedTips.Friend, friend)
|
||||
friendAddedTips.OpUser.UserID = user[0].UserID
|
||||
friendAddedTips.OpUser.Ex = user[0].Ex
|
||||
friendAddedTips.OpUser.Nickname = user[0].Nickname
|
||||
friendAddedTips.OpUser.FaceURL = user[0].FaceURL
|
||||
|
||||
friend, err := check.GetFriendsInfo(ctx, fromUserID, toUserID)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
friendAddedTips.Friend = friend
|
||||
friendNotification(operationID, fromUserID, toUserID, constant.FriendAddedNotification, &friendAddedTips)
|
||||
}
|
||||
|
||||
func FriendDeletedNotification(operationID string, req *pbFriend.DeleteFriendReq) {
|
||||
func FriendDeletedNotification(ctx context.Context, req *pbFriend.DeleteFriendReq) {
|
||||
friendDeletedTips := open_im_sdk.FriendDeletedTips{FromToUserID: &open_im_sdk.FromToUserID{}}
|
||||
friendDeletedTips.FromToUserID.FromUserID = req.OwnerUserID
|
||||
friendDeletedTips.FromToUserID.ToUserID = req.FriendUserID
|
||||
friendNotification(operationID, req.OwnerUserID, req.FriendUserID, constant.FriendDeletedNotification, &friendDeletedTips)
|
||||
friendNotification(tracelog.GetOperationID(ctx), req.OwnerUserID, req.FriendUserID, constant.FriendDeletedNotification, &friendDeletedTips)
|
||||
}
|
||||
|
||||
func FriendRemarkSetNotification(operationID, fromUserID, toUserID string) {
|
||||
func FriendRemarkSetNotification(ctx context.Context, fromUserID, toUserID string) {
|
||||
friendInfoChangedTips := open_im_sdk.FriendInfoChangedTips{FromToUserID: &open_im_sdk.FromToUserID{}}
|
||||
friendInfoChangedTips.FromToUserID.FromUserID = fromUserID
|
||||
friendInfoChangedTips.FromToUserID.ToUserID = toUserID
|
||||
friendNotification(operationID, fromUserID, toUserID, constant.FriendRemarkSetNotification, &friendInfoChangedTips)
|
||||
friendNotification(tracelog.GetOperationID(ctx), fromUserID, toUserID, constant.FriendRemarkSetNotification, &friendInfoChangedTips)
|
||||
}
|
||||
|
||||
func BlackAddedNotification(operationID string, req *pbFriend.AddBlackReq) {
|
||||
func BlackAddedNotification(ctx context.Context, req *pbFriend.AddBlackReq) {
|
||||
blackAddedTips := open_im_sdk.BlackAddedTips{FromToUserID: &open_im_sdk.FromToUserID{}}
|
||||
blackAddedTips.FromToUserID.FromUserID = req.OwnerUserID
|
||||
blackAddedTips.FromToUserID.ToUserID = req.BlackUserID
|
||||
friendNotification(operationID, req.OwnerUserID, req.BlackUserID, constant.BlackAddedNotification, &blackAddedTips)
|
||||
friendNotification(tracelog.GetOperationID(ctx), req.OwnerUserID, req.BlackUserID, constant.BlackAddedNotification, &blackAddedTips)
|
||||
}
|
||||
|
||||
func BlackDeletedNotification(operationID string, req *pbFriend.RemoveBlackReq) {
|
||||
func BlackDeletedNotification(ctx context.Context, req *pbFriend.RemoveBlackReq) {
|
||||
blackDeletedTips := open_im_sdk.BlackDeletedTips{FromToUserID: &open_im_sdk.FromToUserID{}}
|
||||
blackDeletedTips.FromToUserID.FromUserID = req.OwnerUserID
|
||||
blackDeletedTips.FromToUserID.ToUserID = req.BlackUserID
|
||||
friendNotification(operationID, req.OwnerUserID, req.BlackUserID, constant.BlackDeletedNotification, &blackDeletedTips)
|
||||
friendNotification(tracelog.GetOperationID(ctx), req.OwnerUserID, req.BlackUserID, constant.BlackDeletedNotification, &blackDeletedTips)
|
||||
}
|
||||
|
||||
// send to myself
|
||||
func UserInfoUpdatedNotification(operationID, opUserID string, changedUserID string) {
|
||||
func UserInfoUpdatedNotification(ctx context.Context, opUserID string, changedUserID string) {
|
||||
selfInfoUpdatedTips := open_im_sdk.UserInfoUpdatedTips{UserID: changedUserID}
|
||||
friendNotification(operationID, opUserID, changedUserID, constant.UserInfoUpdatedNotification, &selfInfoUpdatedTips)
|
||||
friendNotification(tracelog.GetOperationID(ctx), opUserID, changedUserID, constant.UserInfoUpdatedNotification, &selfInfoUpdatedTips)
|
||||
}
|
||||
|
||||
func FriendInfoUpdatedNotification(operationID, changedUserID string, needNotifiedUserID string, opUserID string) {
|
||||
func FriendInfoUpdatedNotification(ctx context.Context, changedUserID string, needNotifiedUserID string, opUserID string) {
|
||||
selfInfoUpdatedTips := open_im_sdk.UserInfoUpdatedTips{UserID: changedUserID}
|
||||
friendNotification(operationID, opUserID, needNotifiedUserID, constant.FriendInfoUpdatedNotification, &selfInfoUpdatedTips)
|
||||
friendNotification(tracelog.GetOperationID(ctx), opUserID, needNotifiedUserID, constant.FriendInfoUpdatedNotification, &selfInfoUpdatedTips)
|
||||
}
|
||||
|
@ -1,14 +1,5 @@
|
||||
package api_struct
|
||||
|
||||
//UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"`
|
||||
// Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"`
|
||||
// FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"`
|
||||
// Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"`
|
||||
// PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"`
|
||||
// Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"`
|
||||
// Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"`
|
||||
// Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"`
|
||||
|
||||
type UserRegisterReq struct {
|
||||
Secret string `json:"secret" binding:"required,max=32"`
|
||||
Platform int32 `json:"platform" binding:"required,min=1,max=12"`
|
30
pkg/api_struct/public.go
Normal file
30
pkg/api_struct/public.go
Normal file
@ -0,0 +1,30 @@
|
||||
package api_struct
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type ApiUserInfo struct {
|
||||
UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"`
|
||||
Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"`
|
||||
FaceURL string `json:"faceURL" binding:"omitempty,max=1024"`
|
||||
Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"`
|
||||
PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"`
|
||||
Birth int64 `json:"birth" binding:"omitempty"`
|
||||
Email string `json:"email" binding:"omitempty,max=64"`
|
||||
CreateTime int64 `json:"createTime"`
|
||||
Ex string `json:"ex" binding:"omitempty,max=1024"`
|
||||
}
|
||||
|
||||
type GroupAddMemberInfo struct {
|
||||
UserID string `json:"userID" binding:"required"`
|
||||
RoleLevel int32 `json:"roleLevel" binding:"required,oneof= 1 3"`
|
||||
}
|
||||
|
||||
func SetErrCodeMsg(c *gin.Context, status int) *CommResp {
|
||||
resp := CommResp{ErrCode: int32(status), ErrMsg: http.StatusText(status)}
|
||||
c.JSON(status, resp)
|
||||
return &resp
|
||||
}
|
@ -1,143 +0,0 @@
|
||||
package api_struct
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type ApiUserInfo struct {
|
||||
UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"`
|
||||
Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"`
|
||||
FaceURL string `json:"faceURL" binding:"omitempty,max=1024"`
|
||||
Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"`
|
||||
PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"`
|
||||
Birth uint32 `json:"birth" binding:"omitempty"`
|
||||
Email string `json:"email" binding:"omitempty,max=64"`
|
||||
CreateTime int64 `json:"createTime"`
|
||||
LoginLimit int32 `json:"loginLimit" binding:"omitempty"`
|
||||
Ex string `json:"ex" binding:"omitempty,max=1024"`
|
||||
BirthStr string `json:"birthStr" binding:"omitempty"`
|
||||
}
|
||||
|
||||
//type Conversation struct {
|
||||
// OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"`
|
||||
// ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"`
|
||||
// ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"`
|
||||
// UserID string `gorm:"column:user_id;type:char(64)" json:"userID"`
|
||||
// GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"`
|
||||
// RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"`
|
||||
// UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"`
|
||||
// DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"`
|
||||
// IsPinned bool `gorm:"column:is_pinned" json:"isPinned"`
|
||||
// AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"`
|
||||
// Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"`
|
||||
//}
|
||||
|
||||
type GroupAddMemberInfo struct {
|
||||
UserID string `json:"userID" binding:"required"`
|
||||
RoleLevel int32 `json:"roleLevel" binding:"required,oneof= 1 3"`
|
||||
}
|
||||
|
||||
func SetErrCodeMsg(c *gin.Context, status int) *CommResp {
|
||||
resp := CommResp{ErrCode: int32(status), ErrMsg: http.StatusText(status)}
|
||||
c.JSON(status, resp)
|
||||
return &resp
|
||||
}
|
||||
|
||||
//GroupName string `json:"groupName"`
|
||||
// Introduction string `json:"introduction"`
|
||||
// Notification string `json:"notification"`
|
||||
// FaceUrl string `json:"faceUrl"`
|
||||
// OperationID string `json:"operationID" binding:"required"`
|
||||
// GroupType int32 `json:"groupType"`
|
||||
// Ex string `json:"ex"`
|
||||
|
||||
//type GroupInfo struct {
|
||||
// GroupID string `json:"groupID"`
|
||||
// GroupName string `json:"groupName"`
|
||||
// Notification string `json:"notification"`
|
||||
// Introduction string `json:"introduction"`
|
||||
// FaceUrl string `json:"faceUrl"`
|
||||
// OwnerUserID string `json:"ownerUserID"`
|
||||
// Ex string `json:"ex"`
|
||||
// GroupType int32 `json:"groupType"`
|
||||
//}
|
||||
|
||||
//type GroupMemberFullInfo struct {
|
||||
// GroupID string `json:"groupID"`
|
||||
// UserID string `json:"userID"`
|
||||
// RoleLevel int32 `json:"roleLevel"`
|
||||
// JoinTime uint64 `json:"joinTime"`
|
||||
// Nickname string `json:"nickname"`
|
||||
// FaceUrl string `json:"faceUrl"`
|
||||
// FriendRemark string `json:"friendRemark"`
|
||||
// AppMangerLevel int32 `json:"appMangerLevel"`
|
||||
// JoinSource int32 `json:"joinSource"`
|
||||
// OperatorUserID string `json:"operatorUserID"`
|
||||
// Ex string `json:"ex"`
|
||||
//}
|
||||
//
|
||||
//type PublicUserInfo struct {
|
||||
// UserID string `json:"userID"`
|
||||
// Nickname string `json:"nickname"`
|
||||
// FaceUrl string `json:"faceUrl"`
|
||||
// Gender int32 `json:"gender"`
|
||||
//}
|
||||
//
|
||||
//type UserInfo struct {
|
||||
// UserID string `json:"userID"`
|
||||
// Nickname string `json:"nickname"`
|
||||
// FaceUrl string `json:"faceUrl"`
|
||||
// Gender int32 `json:"gender"`
|
||||
// Mobile string `json:"mobile"`
|
||||
// Birth string `json:"birth"`
|
||||
// Email string `json:"email"`
|
||||
// Ex string `json:"ex"`
|
||||
//}
|
||||
//
|
||||
//type FriendInfo struct {
|
||||
// OwnerUserID string `json:"ownerUserID"`
|
||||
// Remark string `json:"remark"`
|
||||
// CreateTime int64 `json:"createTime"`
|
||||
// FriendUser UserInfo `json:"friendUser"`
|
||||
// AddSource int32 `json:"addSource"`
|
||||
// OperatorUserID string `json:"operatorUserID"`
|
||||
// Ex string `json:"ex"`
|
||||
//}
|
||||
//
|
||||
//type BlackInfo struct {
|
||||
// OwnerUserID string `json:"ownerUserID"`
|
||||
// CreateTime int64 `json:"createTime"`
|
||||
// BlackUser PublicUserInfo `json:"friendUser"`
|
||||
// AddSource int32 `json:"addSource"`
|
||||
// OperatorUserID string `json:"operatorUserID"`
|
||||
// Ex string `json:"ex"`
|
||||
//}
|
||||
//
|
||||
//type GroupRequest struct {
|
||||
// UserID string `json:"userID"`
|
||||
// GroupID string `json:"groupID"`
|
||||
// HandleResult string `json:"handleResult"`
|
||||
// ReqMsg string `json:"reqMsg"`
|
||||
// HandleMsg string `json:"handleMsg"`
|
||||
// ReqTime int64 `json:"reqTime"`
|
||||
// HandleUserID string `json:"handleUserID"`
|
||||
// HandleTime int64 `json:"handleTime"`
|
||||
// Ex string `json:"ex"`
|
||||
//}
|
||||
//
|
||||
//type FriendRequest struct {
|
||||
// FromUserID string `json:"fromUserID"`
|
||||
// ToUserID string `json:"toUserID"`
|
||||
// HandleResult int32 `json:"handleResult"`
|
||||
// ReqMessage string `json:"reqMessage"`
|
||||
// CreateTime int64 `json:"createTime"`
|
||||
// HandlerUserID string `json:"handlerUserID"`
|
||||
// HandleMsg string `json:"handleMsg"`
|
||||
// HandleTime int64 `json:"handleTime"`
|
||||
// Ex string `json:"ex"`
|
||||
//}
|
||||
//
|
||||
//
|
||||
//
|
@ -17,19 +17,23 @@ type GroupInterface interface {
|
||||
CreateGroup(ctx context.Context, groups []*relation.Group, groupMember []*relation.GroupMember) error
|
||||
DeleteGroupByIDs(ctx context.Context, groupIDs []string) error
|
||||
TakeGroupByID(ctx context.Context, groupID string) (group *relation.Group, err error)
|
||||
TakeGroupMemberByID(ctx context.Context, groupID string, userID string) (groupMember *relation.GroupMember, err error)
|
||||
GetJoinedGroupList(ctx context.Context, userID string) ([]*relation.Group, error)
|
||||
GetGroupMemberList(ctx context.Context, groupID string) ([]*relation.GroupMember, error)
|
||||
GetGroupMemberListByUserID(ctx context.Context, groupID string, userIDs []string) ([]*relation.GroupMember, error)
|
||||
GetGroupMemberFilterList(ctx context.Context, groupID string, filter int32, begin int32, maxNumber int32) ([]*relation.GroupMember, error) // relation.GetGroupMemberByGroupID(req.GroupID, req.Filter, req.NextSeq, 30)
|
||||
FindGroupMembersByID(ctx context.Context, groupID string, userIDs []string) (groups []*relation.GroupMember, err error)
|
||||
DelGroupMember(ctx context.Context, groupID string, userIDs []string) error
|
||||
GetGroupMemberNum(ctx context.Context, groupIDs []string) (map[string]int, error)
|
||||
GetGroupOwnerUserID(ctx context.Context, groupIDs []string) (map[string]string, error)
|
||||
GetGroupRecvApplicationList(ctx context.Context, userID string) ([]*relation.GroupRequest, error)
|
||||
|
||||
CreateGroupMember(ctx context.Context, groupMember []*relation.GroupMember) error
|
||||
|
||||
CreateGroupRequest(ctx context.Context, requests []*relation.GroupRequest) error
|
||||
|
||||
//mongo
|
||||
CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error
|
||||
DelSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error
|
||||
AddUserToSuperGroup(ctx context.Context, groupID string, userIDs []string) error
|
||||
GetSuperGroupByID(ctx context.Context, groupID string) (superGroup *unrelation.SuperGroup, err error)
|
||||
}
|
||||
@ -40,6 +44,51 @@ type GroupController struct {
|
||||
database GroupDataBaseInterface
|
||||
}
|
||||
|
||||
func (g *GroupController) TakeGroupMemberByID(ctx context.Context, groupID string, userID string) (groupMember *relation.GroupMember, err error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (g *GroupController) FindGroupMembersByID(ctx context.Context, groupID string, userIDs []string) (groups []*relation.GroupMember, err error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (g *GroupController) DelGroupMember(ctx context.Context, groupID string, userIDs []string) error {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (g *GroupController) GetGroupRecvApplicationList(ctx context.Context, userID string) ([]*relation.GroupRequest, error) {
|
||||
/*
|
||||
var groupRequestList []db.GroupRequest
|
||||
memberList, err := GetGroupMemberListByUserID(userID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, v := range memberList {
|
||||
if v.RoleLevel > constant.GroupOrdinaryUsers {
|
||||
list, err := GetGroupRequestByGroupID(v.GroupID)
|
||||
if err != nil {
|
||||
// fmt.Println("111 GetGroupRequestByGroupID failed ", err.Error())
|
||||
continue
|
||||
}
|
||||
// fmt.Println("222 GetGroupRequestByGroupID ok ", list)
|
||||
groupRequestList = append(groupRequestList, list...)
|
||||
// fmt.Println("333 GetGroupRequestByGroupID ok ", groupRequestList)
|
||||
}
|
||||
}
|
||||
return groupRequestList, nil
|
||||
*/
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (g *GroupController) DelSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (g *GroupController) GetJoinedGroupList(ctx context.Context, userID string) ([]*relation.Group, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
|
@ -1,10 +1,6 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"Open_IM/pkg/common/config"
|
||||
"Open_IM/pkg/common/log"
|
||||
"Open_IM/pkg/common/token_verify"
|
||||
"Open_IM/pkg/utils"
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"github.com/gin-gonic/gin"
|
||||
@ -12,27 +8,6 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func JWTAuth() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
ok, userID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), "")
|
||||
// log.NewInfo("0", utils.GetSelfFuncName(), "userID: ", userID)
|
||||
c.Set("userID", userID)
|
||||
if !ok {
|
||||
log.NewError("", "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||
c.Abort()
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": 400, "errMsg": errInfo})
|
||||
return
|
||||
} else {
|
||||
if !utils.IsContain(userID, config.Config.Manager.AppManagerUid) {
|
||||
c.Abort()
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": 400, "errMsg": "user is not admin"})
|
||||
return
|
||||
}
|
||||
log.NewInfo("0", utils.GetSelfFuncName(), "failed: ", errInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func CorsHandler() gin.HandlerFunc {
|
||||
return func(context *gin.Context) {
|
||||
context.Writer.Header().Set("Access-Control-Allow-Origin", "*")
|
||||
|
@ -1,73 +0,0 @@
|
||||
package multi_terminal_login
|
||||
|
||||
//
|
||||
//import (
|
||||
// "Open_IM/internal/push/content_struct"
|
||||
// "Open_IM/internal/push/logic"
|
||||
// "Open_IM/pkg/common/config"
|
||||
// "Open_IM/pkg/common/constant"
|
||||
// "Open_IM/pkg/common/db"
|
||||
// pbChat "Open_IM/pkg/proto/msg"
|
||||
// "Open_IM/pkg/utils"
|
||||
//)
|
||||
//
|
||||
//const DayOfSecond = 24*60*60
|
||||
//func MultiTerminalLoginChecker(uid, token string, platformID int32) error {
|
||||
// // 1.check userid and platform class 0 not exists and 1 exists
|
||||
// exists, err := db.DB.ExistsUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)))
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// //get config multi login policy
|
||||
// if config.Config.MultiLoginPolicy {
|
||||
// //OnlyOneTerminalAccess policy need to check all terminal
|
||||
// if constant.PlatformNameToClass(constant.PlatformIDToName(platformID)) == "PC" {
|
||||
// exists, err = db.DB.ExistsUserIDAndPlatform(uid, "Mobile")
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// } else {
|
||||
// exists, err = db.DB.ExistsUserIDAndPlatform(uid, "PC")
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// }
|
||||
// if exists == 1 {
|
||||
// err := db.DB.SetUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire*DayOfSecond)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// PushMessageToTheTerminal(uid, platformID)
|
||||
// return nil
|
||||
// }
|
||||
// } else if config.Config.MultiLoginPolicy.MobileAndPCTerminalAccessButOtherTerminalKickEachOther {
|
||||
// // common terminal need to kick eich other
|
||||
// if exists == 1 {
|
||||
// err := db.DB.SetUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire*DayOfSecond)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// PushMessageToTheTerminal(uid, platformID)
|
||||
// return nil
|
||||
// }
|
||||
// }
|
||||
// err = db.DB.SetUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire*DayOfSecond)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// PushMessageToTheTerminal(uid, platformID)
|
||||
// return nil
|
||||
//}
|
||||
////
|
||||
////func PushMessageToTheTerminal(uid string, platform int32) {
|
||||
////
|
||||
//// logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
||||
//// SendID: uid,
|
||||
//// RecvID: uid,
|
||||
//// Content: content_struct.NewContentStructString(1, "", "Your account is already logged on other terminal,please confirm"),
|
||||
//// SendTime: utils.GetCurrentTimestampBySecond(),
|
||||
//// MsgFrom: constant.SysMsgType,
|
||||
//// ContentType: constant.KickOnlineTip,
|
||||
//// PlatformID: platform,
|
||||
//// })
|
||||
////}
|
@ -26,7 +26,7 @@ var _ = math.Inf
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
|
||||
type CreateGroupReq struct {
|
||||
InitMemberList []string `protobuf:"bytes,1,rep,name=initMemberList" json:"initMemberList,omitempty"`
|
||||
InitMembers []string `protobuf:"bytes,1,rep,name=initMembers" json:"initMembers,omitempty"`
|
||||
GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"`
|
||||
AdminUserIDs []string `protobuf:"bytes,3,rep,name=adminUserIDs" json:"adminUserIDs,omitempty"`
|
||||
OwnerUserID string `protobuf:"bytes,4,opt,name=ownerUserID" json:"ownerUserID,omitempty"`
|
||||
@ -39,7 +39,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_19947c3109871c24, []int{0}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{0}
|
||||
}
|
||||
func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b)
|
||||
@ -59,9 +59,9 @@ func (m *CreateGroupReq) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo
|
||||
|
||||
func (m *CreateGroupReq) GetInitMemberList() []string {
|
||||
func (m *CreateGroupReq) GetInitMembers() []string {
|
||||
if m != nil {
|
||||
return m.InitMemberList
|
||||
return m.InitMembers
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@ -98,7 +98,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_19947c3109871c24, []int{1}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{1}
|
||||
}
|
||||
func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b)
|
||||
@ -136,7 +136,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_19947c3109871c24, []int{2}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{2}
|
||||
}
|
||||
func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b)
|
||||
@ -174,7 +174,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_19947c3109871c24, []int{3}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{3}
|
||||
}
|
||||
func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b)
|
||||
@ -212,7 +212,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_19947c3109871c24, []int{4}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{4}
|
||||
}
|
||||
func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b)
|
||||
@ -249,7 +249,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} }
|
||||
func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*SetGroupInfoResp) ProtoMessage() {}
|
||||
func (*SetGroupInfoResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{5}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{5}
|
||||
}
|
||||
func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b)
|
||||
@ -281,7 +281,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_19947c3109871c24, []int{6}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{6}
|
||||
}
|
||||
func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b)
|
||||
@ -327,7 +327,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_19947c3109871c24, []int{7}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{7}
|
||||
}
|
||||
func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b)
|
||||
@ -373,7 +373,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat
|
||||
func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetUserReqApplicationListReq) ProtoMessage() {}
|
||||
func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{8}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{8}
|
||||
}
|
||||
func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b)
|
||||
@ -419,7 +419,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica
|
||||
func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetUserReqApplicationListResp) ProtoMessage() {}
|
||||
func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{9}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{9}
|
||||
}
|
||||
func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b)
|
||||
@ -466,7 +466,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_19947c3109871c24, []int{10}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{10}
|
||||
}
|
||||
func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b)
|
||||
@ -517,7 +517,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_19947c3109871c24, []int{11}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{11}
|
||||
}
|
||||
func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b)
|
||||
@ -551,7 +551,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_19947c3109871c24, []int{12}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{12}
|
||||
}
|
||||
func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b)
|
||||
@ -609,7 +609,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} }
|
||||
func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*JoinGroupResp) ProtoMessage() {}
|
||||
func (*JoinGroupResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{13}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{13}
|
||||
}
|
||||
func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b)
|
||||
@ -643,7 +643,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_19947c3109871c24, []int{14}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{14}
|
||||
}
|
||||
func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b)
|
||||
@ -701,7 +701,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_19947c3109871c24, []int{15}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{15}
|
||||
}
|
||||
func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b)
|
||||
@ -732,7 +732,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_19947c3109871c24, []int{16}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{16}
|
||||
}
|
||||
func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b)
|
||||
@ -769,7 +769,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} }
|
||||
func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*QuitGroupResp) ProtoMessage() {}
|
||||
func (*QuitGroupResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{17}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{17}
|
||||
}
|
||||
func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b)
|
||||
@ -802,7 +802,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_19947c3109871c24, []int{18}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{18}
|
||||
}
|
||||
func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b)
|
||||
@ -855,7 +855,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_19947c3109871c24, []int{19}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{19}
|
||||
}
|
||||
func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b)
|
||||
@ -891,7 +891,7 @@ func (m *GetGroupMemberListResp) GetMembers() []*sdk_ws.GroupMemberFullInfo {
|
||||
|
||||
type GetGroupMembersInfoReq struct {
|
||||
GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
|
||||
MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"`
|
||||
Members []string `protobuf:"bytes,2,rep,name=members" json:"members,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -901,7 +901,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_19947c3109871c24, []int{20}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{20}
|
||||
}
|
||||
func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b)
|
||||
@ -928,9 +928,9 @@ func (m *GetGroupMembersInfoReq) GetGroupID() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *GetGroupMembersInfoReq) GetMemberList() []string {
|
||||
func (m *GetGroupMembersInfoReq) GetMembers() []string {
|
||||
if m != nil {
|
||||
return m.MemberList
|
||||
return m.Members
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@ -946,7 +946,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_19947c3109871c24, []int{21}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{21}
|
||||
}
|
||||
func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b)
|
||||
@ -975,7 +975,7 @@ func (m *GetGroupMembersInfoResp) GetMembers() []*sdk_ws.GroupMemberFullInfo {
|
||||
|
||||
type KickGroupMemberReq struct {
|
||||
GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
|
||||
KickedUserIDList []string `protobuf:"bytes,2,rep,name=kickedUserIDList" json:"kickedUserIDList,omitempty"`
|
||||
KickedUserIDs []string `protobuf:"bytes,2,rep,name=kickedUserIDs" json:"kickedUserIDs,omitempty"`
|
||||
Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
@ -986,7 +986,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_19947c3109871c24, []int{22}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{22}
|
||||
}
|
||||
func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b)
|
||||
@ -1013,9 +1013,9 @@ func (m *KickGroupMemberReq) GetGroupID() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *KickGroupMemberReq) GetKickedUserIDList() []string {
|
||||
func (m *KickGroupMemberReq) GetKickedUserIDs() []string {
|
||||
if m != nil {
|
||||
return m.KickedUserIDList
|
||||
return m.KickedUserIDs
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@ -1037,7 +1037,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_19947c3109871c24, []int{23}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{23}
|
||||
}
|
||||
func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b)
|
||||
@ -1069,7 +1069,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_19947c3109871c24, []int{24}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{24}
|
||||
}
|
||||
func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b)
|
||||
@ -1115,7 +1115,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_19947c3109871c24, []int{25}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{25}
|
||||
}
|
||||
func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b)
|
||||
@ -1162,7 +1162,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_19947c3109871c24, []int{26}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{26}
|
||||
}
|
||||
func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b)
|
||||
@ -1213,7 +1213,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_19947c3109871c24, []int{27}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{27}
|
||||
}
|
||||
func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b)
|
||||
@ -1245,7 +1245,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_19947c3109871c24, []int{28}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{28}
|
||||
}
|
||||
func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b)
|
||||
@ -1290,7 +1290,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_19947c3109871c24, []int{29}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{29}
|
||||
}
|
||||
func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b)
|
||||
@ -1330,7 +1330,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} }
|
||||
func (m *CMSGroup) String() string { return proto.CompactTextString(m) }
|
||||
func (*CMSGroup) ProtoMessage() {}
|
||||
func (*CMSGroup) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{30}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{30}
|
||||
}
|
||||
func (m *CMSGroup) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CMSGroup.Unmarshal(m, b)
|
||||
@ -1384,7 +1384,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} }
|
||||
func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetGroupsReq) ProtoMessage() {}
|
||||
func (*GetGroupsReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{31}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{31}
|
||||
}
|
||||
func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b)
|
||||
@ -1437,7 +1437,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} }
|
||||
func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetGroupsResp) ProtoMessage() {}
|
||||
func (*GetGroupsResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{32}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{32}
|
||||
}
|
||||
func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b)
|
||||
@ -1482,7 +1482,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} }
|
||||
func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetGroupMemberReq) ProtoMessage() {}
|
||||
func (*GetGroupMemberReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{33}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{33}
|
||||
}
|
||||
func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b)
|
||||
@ -1522,7 +1522,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} }
|
||||
func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetGroupMembersCMSReq) ProtoMessage() {}
|
||||
func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{34}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{34}
|
||||
}
|
||||
func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b)
|
||||
@ -1576,7 +1576,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{}
|
||||
func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetGroupMembersCMSResp) ProtoMessage() {}
|
||||
func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{35}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{35}
|
||||
}
|
||||
func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b)
|
||||
@ -1628,7 +1628,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} }
|
||||
func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*DismissGroupReq) ProtoMessage() {}
|
||||
func (*DismissGroupReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{36}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{36}
|
||||
}
|
||||
func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b)
|
||||
@ -1665,7 +1665,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} }
|
||||
func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*DismissGroupResp) ProtoMessage() {}
|
||||
func (*DismissGroupResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{37}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{37}
|
||||
}
|
||||
func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b)
|
||||
@ -1698,7 +1698,7 @@ func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} }
|
||||
func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*MuteGroupMemberReq) ProtoMessage() {}
|
||||
func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{38}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{38}
|
||||
}
|
||||
func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b)
|
||||
@ -1749,7 +1749,7 @@ func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} }
|
||||
func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*MuteGroupMemberResp) ProtoMessage() {}
|
||||
func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{39}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{39}
|
||||
}
|
||||
func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b)
|
||||
@ -1781,7 +1781,7 @@ func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberR
|
||||
func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*CancelMuteGroupMemberReq) ProtoMessage() {}
|
||||
func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{40}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{40}
|
||||
}
|
||||
func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b)
|
||||
@ -1825,7 +1825,7 @@ func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMember
|
||||
func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*CancelMuteGroupMemberResp) ProtoMessage() {}
|
||||
func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{41}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{41}
|
||||
}
|
||||
func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b)
|
||||
@ -1856,7 +1856,7 @@ func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} }
|
||||
func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*MuteGroupReq) ProtoMessage() {}
|
||||
func (*MuteGroupReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{42}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{42}
|
||||
}
|
||||
func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b)
|
||||
@ -1893,7 +1893,7 @@ func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} }
|
||||
func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*MuteGroupResp) ProtoMessage() {}
|
||||
func (*MuteGroupResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{43}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{43}
|
||||
}
|
||||
func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b)
|
||||
@ -1924,7 +1924,7 @@ func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} }
|
||||
func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*CancelMuteGroupReq) ProtoMessage() {}
|
||||
func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{44}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{44}
|
||||
}
|
||||
func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b)
|
||||
@ -1961,7 +1961,7 @@ func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} }
|
||||
func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*CancelMuteGroupResp) ProtoMessage() {}
|
||||
func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{45}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{45}
|
||||
}
|
||||
func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b)
|
||||
@ -1994,7 +1994,7 @@ func (m *SetGroupMemberNicknameReq) Reset() { *m = SetGroupMemberNicknam
|
||||
func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*SetGroupMemberNicknameReq) ProtoMessage() {}
|
||||
func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{46}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{46}
|
||||
}
|
||||
func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b)
|
||||
@ -2045,7 +2045,7 @@ func (m *SetGroupMemberNicknameResp) Reset() { *m = SetGroupMemberNickna
|
||||
func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*SetGroupMemberNicknameResp) ProtoMessage() {}
|
||||
func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{47}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{47}
|
||||
}
|
||||
func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b)
|
||||
@ -2077,7 +2077,7 @@ func (m *GetJoinedSuperGroupListReq) Reset() { *m = GetJoinedSuperGroupL
|
||||
func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetJoinedSuperGroupListReq) ProtoMessage() {}
|
||||
func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{48}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{48}
|
||||
}
|
||||
func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b)
|
||||
@ -2123,7 +2123,7 @@ func (m *GetJoinedSuperGroupListResp) Reset() { *m = GetJoinedSuperGroup
|
||||
func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetJoinedSuperGroupListResp) ProtoMessage() {}
|
||||
func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{49}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{49}
|
||||
}
|
||||
func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b)
|
||||
@ -2168,7 +2168,7 @@ func (m *GetSuperGroupsInfoReq) Reset() { *m = GetSuperGroupsInfoReq{} }
|
||||
func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetSuperGroupsInfoReq) ProtoMessage() {}
|
||||
func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{50}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{50}
|
||||
}
|
||||
func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b)
|
||||
@ -2206,7 +2206,7 @@ func (m *GetSuperGroupsInfoResp) Reset() { *m = GetSuperGroupsInfoResp{}
|
||||
func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetSuperGroupsInfoResp) ProtoMessage() {}
|
||||
func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{51}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{51}
|
||||
}
|
||||
func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b)
|
||||
@ -2249,7 +2249,7 @@ func (m *SetGroupMemberInfoReq) Reset() { *m = SetGroupMemberInfoReq{} }
|
||||
func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*SetGroupMemberInfoReq) ProtoMessage() {}
|
||||
func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{52}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{52}
|
||||
}
|
||||
func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b)
|
||||
@ -2321,7 +2321,7 @@ func (m *SetGroupMemberInfoResp) Reset() { *m = SetGroupMemberInfoResp{}
|
||||
func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*SetGroupMemberInfoResp) ProtoMessage() {}
|
||||
func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{53}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{53}
|
||||
}
|
||||
func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b)
|
||||
@ -2352,7 +2352,7 @@ func (m *GetGroupAbstractInfoReq) Reset() { *m = GetGroupAbstractInfoReq
|
||||
func (m *GetGroupAbstractInfoReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetGroupAbstractInfoReq) ProtoMessage() {}
|
||||
func (*GetGroupAbstractInfoReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{54}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{54}
|
||||
}
|
||||
func (m *GetGroupAbstractInfoReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupAbstractInfoReq.Unmarshal(m, b)
|
||||
@ -2392,7 +2392,7 @@ func (m *GroupAbstractInfo) Reset() { *m = GroupAbstractInfo{} }
|
||||
func (m *GroupAbstractInfo) String() string { return proto.CompactTextString(m) }
|
||||
func (*GroupAbstractInfo) ProtoMessage() {}
|
||||
func (*GroupAbstractInfo) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{55}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{55}
|
||||
}
|
||||
func (m *GroupAbstractInfo) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GroupAbstractInfo.Unmarshal(m, b)
|
||||
@ -2444,7 +2444,7 @@ func (m *GetGroupAbstractInfoResp) Reset() { *m = GetGroupAbstractInfoRe
|
||||
func (m *GetGroupAbstractInfoResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetGroupAbstractInfoResp) ProtoMessage() {}
|
||||
func (*GetGroupAbstractInfoResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{56}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{56}
|
||||
}
|
||||
func (m *GetGroupAbstractInfoResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetGroupAbstractInfoResp.Unmarshal(m, b)
|
||||
@ -2483,7 +2483,7 @@ func (m *GetUserInGroupMembersReq) Reset() { *m = GetUserInGroupMembersR
|
||||
func (m *GetUserInGroupMembersReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetUserInGroupMembersReq) ProtoMessage() {}
|
||||
func (*GetUserInGroupMembersReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{57}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{57}
|
||||
}
|
||||
func (m *GetUserInGroupMembersReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetUserInGroupMembersReq.Unmarshal(m, b)
|
||||
@ -2528,7 +2528,7 @@ func (m *GetUserInGroupMembersResp) Reset() { *m = GetUserInGroupMembers
|
||||
func (m *GetUserInGroupMembersResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetUserInGroupMembersResp) ProtoMessage() {}
|
||||
func (*GetUserInGroupMembersResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_group_19947c3109871c24, []int{58}
|
||||
return fileDescriptor_group_5c8d3aafef0e7d21, []int{58}
|
||||
}
|
||||
func (m *GetUserInGroupMembersResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetUserInGroupMembersResp.Unmarshal(m, b)
|
||||
@ -3597,124 +3597,124 @@ var _Group_serviceDesc = grpc.ServiceDesc{
|
||||
Metadata: "group/group.proto",
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_19947c3109871c24) }
|
||||
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_5c8d3aafef0e7d21) }
|
||||
|
||||
var fileDescriptor_group_19947c3109871c24 = []byte{
|
||||
// 1848 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0x5f, 0x53, 0xdb, 0xc0,
|
||||
0x11, 0x1f, 0x99, 0x40, 0xc2, 0x06, 0x02, 0x1c, 0x18, 0x8c, 0x20, 0x40, 0x2e, 0x69, 0xca, 0xb4,
|
||||
0x89, 0xe9, 0x24, 0x6d, 0xa6, 0x7f, 0x32, 0x93, 0x26, 0x90, 0x10, 0x5a, 0x0c, 0x8d, 0x4c, 0xd2,
|
||||
0x69, 0x3a, 0x19, 0x2a, 0xec, 0x43, 0x51, 0xb0, 0xa5, 0x43, 0x27, 0x43, 0x26, 0x93, 0x3e, 0xb4,
|
||||
0xcf, 0xfd, 0xf3, 0xd0, 0xc7, 0xbe, 0x75, 0xfa, 0x29, 0xfa, 0xd6, 0xaf, 0xd2, 0x4f, 0xd2, 0xd1,
|
||||
0xe9, 0x74, 0x3e, 0x49, 0x27, 0xd9, 0x25, 0xee, 0x8b, 0x67, 0xb4, 0xb7, 0x7b, 0xb7, 0xb7, 0xff,
|
||||
0xee, 0xb7, 0x6b, 0x98, 0x73, 0x02, 0xbf, 0x47, 0xb7, 0xf8, 0x6f, 0x9d, 0x06, 0x7e, 0xe8, 0xa3,
|
||||
0x71, 0xfe, 0x61, 0x6e, 0x1e, 0x52, 0xe2, 0x3d, 0xdc, 0x6b, 0x3c, 0x6c, 0x92, 0xe0, 0x82, 0x04,
|
||||
0x5b, 0xf4, 0xcc, 0xd9, 0xe2, 0x0c, 0x5b, 0xac, 0x7d, 0x76, 0x7c, 0xc9, 0xb6, 0x2e, 0x59, 0x2c,
|
||||
0x60, 0xd6, 0x07, 0x72, 0x06, 0x36, 0xa5, 0x24, 0x10, 0xfc, 0xf8, 0x5f, 0x06, 0xdc, 0xda, 0x0e,
|
||||
0x88, 0x1d, 0x92, 0xdd, 0xe8, 0x24, 0x8b, 0x9c, 0xa3, 0xfb, 0x70, 0xcb, 0xf5, 0xdc, 0xb0, 0x41,
|
||||
0xba, 0x27, 0x24, 0xd8, 0x77, 0x59, 0x58, 0x33, 0x36, 0xc6, 0x36, 0x27, 0xad, 0x0c, 0x15, 0xfd,
|
||||
0x14, 0x26, 0xb9, 0x76, 0x7b, 0xde, 0xa9, 0x5f, 0xab, 0x6c, 0x18, 0x9b, 0x37, 0x1f, 0xad, 0xd6,
|
||||
0x19, 0x3f, 0xf6, 0xd8, 0xa6, 0xee, 0x31, 0xb5, 0x03, 0xbb, 0xcb, 0xea, 0xbb, 0x09, 0x8f, 0xd5,
|
||||
0x67, 0x47, 0x18, 0xa6, 0xec, 0x76, 0xd7, 0xf5, 0xde, 0x32, 0x12, 0xec, 0xed, 0xb0, 0xda, 0x18,
|
||||
0x3f, 0x21, 0x45, 0x43, 0x1b, 0x70, 0xd3, 0xbf, 0xf4, 0x48, 0x10, 0x7f, 0xd7, 0xae, 0x6d, 0x18,
|
||||
0x9b, 0x93, 0x96, 0x4a, 0xc2, 0x0d, 0x98, 0x49, 0xe9, 0xce, 0x68, 0x5a, 0x29, 0xe3, 0x7f, 0x52,
|
||||
0x0a, 0xd7, 0x61, 0x76, 0x97, 0x84, 0x7c, 0x89, 0xf1, 0x35, 0x72, 0x8e, 0x4c, 0xb8, 0x11, 0x33,
|
||||
0xec, 0x30, 0x61, 0x06, 0xf9, 0x8d, 0xdf, 0xc0, 0x5c, 0x86, 0x9f, 0x51, 0xf4, 0x14, 0x40, 0xee,
|
||||
0x18, 0x8b, 0x0c, 0xd2, 0x40, 0xe1, 0xc7, 0xc7, 0x30, 0xd3, 0x14, 0x5b, 0x26, 0x1a, 0xec, 0xc3,
|
||||
0x8c, 0x64, 0x78, 0xe5, 0x07, 0x4d, 0x12, 0x8a, 0x7b, 0xe1, 0xb2, 0x5d, 0x63, 0x4e, 0x2b, 0x2b,
|
||||
0x8a, 0x11, 0xcc, 0xa6, 0x0f, 0x60, 0x14, 0xff, 0xd1, 0x00, 0x33, 0xb9, 0xc8, 0x73, 0x4a, 0x3b,
|
||||
0x6e, 0xcb, 0x0e, 0x5d, 0xdf, 0x8b, 0x9c, 0x1c, 0x29, 0xb0, 0x03, 0x40, 0x6d, 0xc7, 0xf5, 0x38,
|
||||
0x51, 0x9c, 0x7d, 0x4f, 0x73, 0xb6, 0x45, 0xce, 0x7b, 0x84, 0x85, 0xbf, 0x92, 0xbc, 0x96, 0x22,
|
||||
0x87, 0xd6, 0x00, 0x4e, 0x03, 0xbf, 0x2b, 0x9c, 0x59, 0xe1, 0xce, 0x54, 0x28, 0xf8, 0x0b, 0xac,
|
||||
0x14, 0xea, 0xc0, 0x28, 0x5a, 0x80, 0xf1, 0xd0, 0x0f, 0xed, 0x0e, 0x3f, 0x7f, 0xdc, 0x8a, 0x3f,
|
||||
0xd0, 0x4b, 0x98, 0x76, 0x44, 0xd8, 0x46, 0x47, 0xb3, 0x5a, 0x85, 0xdb, 0x7b, 0xbd, 0xc8, 0x32,
|
||||
0x82, 0xcf, 0x4a, 0x4b, 0xe1, 0xaf, 0xb0, 0xba, 0x4b, 0xc2, 0x48, 0x11, 0x8b, 0x9c, 0x6b, 0x2c,
|
||||
0xb0, 0x08, 0x13, 0xbd, 0x58, 0x6f, 0x83, 0xeb, 0x2d, 0xbe, 0x32, 0x96, 0xa9, 0x5c, 0xcd, 0x32,
|
||||
0xf8, 0x2b, 0xdc, 0x2e, 0x39, 0xfd, 0xff, 0x7d, 0xf7, 0x3f, 0x18, 0x50, 0x3d, 0x0a, 0x6c, 0x8f,
|
||||
0x9d, 0x92, 0x80, 0xf3, 0x1d, 0x46, 0x09, 0x16, 0xdd, 0xba, 0x06, 0xd7, 0x45, 0xa8, 0x8b, 0x6b,
|
||||
0x27, 0x9f, 0x51, 0x85, 0xf0, 0x3b, 0xed, 0x43, 0x25, 0x39, 0x63, 0x7f, 0x66, 0xa8, 0x11, 0x9f,
|
||||
0x47, 0x2e, 0x55, 0xbe, 0xb1, 0x98, 0x2f, 0x4d, 0xc5, 0x35, 0x58, 0xd4, 0xa9, 0xc0, 0x28, 0xfe,
|
||||
0x8b, 0x01, 0x53, 0xbf, 0xf0, 0x5d, 0x4f, 0x16, 0xa7, 0x62, 0xa5, 0xd6, 0x00, 0x02, 0x72, 0xde,
|
||||
0x20, 0x8c, 0xd9, 0x0e, 0x49, 0x02, 0xac, 0x4f, 0x89, 0xd6, 0x3f, 0xf9, 0xae, 0xd7, 0xf4, 0x7b,
|
||||
0x41, 0x8b, 0x70, 0x45, 0xc6, 0x2d, 0x85, 0x82, 0xee, 0xc1, 0xb4, 0xeb, 0x5d, 0xb8, 0x61, 0xa6,
|
||||
0xe0, 0xa4, 0x89, 0x78, 0x06, 0xa6, 0x15, 0x7d, 0x18, 0xc5, 0x7f, 0x37, 0x60, 0x25, 0x1b, 0xb5,
|
||||
0xd1, 0x82, 0xef, 0x31, 0x32, 0x50, 0xe1, 0xb2, 0x8c, 0x88, 0xd6, 0x3f, 0xda, 0x5e, 0xbb, 0x43,
|
||||
0xda, 0x0d, 0xe6, 0x08, 0xcb, 0x29, 0x94, 0xa8, 0x86, 0xc6, 0x5f, 0x16, 0x61, 0xbd, 0x4e, 0xc8,
|
||||
0xf5, 0x1d, 0xb7, 0x52, 0x34, 0xbc, 0x06, 0xab, 0xc5, 0xca, 0x31, 0x8a, 0x37, 0x61, 0xea, 0x4d,
|
||||
0xcf, 0x0d, 0x07, 0x9b, 0x37, 0xba, 0xb8, 0xc2, 0xc9, 0x28, 0xfe, 0xab, 0x01, 0xd5, 0x24, 0x63,
|
||||
0xfb, 0xaf, 0x42, 0xf9, 0x95, 0x17, 0x61, 0xe2, 0xd4, 0xed, 0x84, 0x24, 0xe0, 0xd7, 0x1d, 0xb7,
|
||||
0xc4, 0x57, 0x26, 0x91, 0xae, 0x5d, 0x31, 0x91, 0x28, 0x2c, 0xea, 0x14, 0x2a, 0xcc, 0xa0, 0x9f,
|
||||
0xc3, 0xf5, 0x2e, 0xe7, 0x4b, 0x72, 0xe7, 0x7e, 0x51, 0xee, 0xc4, 0xdb, 0xbd, 0xea, 0x75, 0x3a,
|
||||
0xbc, 0x68, 0x26, 0x62, 0xd8, 0xca, 0x9e, 0x28, 0xdf, 0x8d, 0x52, 0xb7, 0x77, 0xfb, 0x4f, 0x6b,
|
||||
0x85, 0xbf, 0x29, 0x0a, 0x05, 0xff, 0x16, 0x96, 0xb4, 0x7b, 0x32, 0xaa, 0x2a, 0x6c, 0x5c, 0x4d,
|
||||
0xe1, 0x00, 0xd0, 0x2f, 0xdd, 0xd6, 0x99, 0xc2, 0x53, 0xae, 0xec, 0xf7, 0x60, 0xf6, 0xcc, 0x6d,
|
||||
0x9d, 0x91, 0x76, 0x1c, 0x93, 0x8a, 0xca, 0x39, 0x7a, 0xe4, 0xdc, 0x80, 0xd8, 0xcc, 0xf7, 0x44,
|
||||
0xac, 0x8a, 0x2f, 0x5c, 0x85, 0xf9, 0xdc, 0x99, 0x8c, 0xe2, 0xdf, 0xf3, 0xf0, 0x89, 0x92, 0x89,
|
||||
0xb4, 0xf9, 0x5a, 0x12, 0x3e, 0xe9, 0xbc, 0x30, 0x72, 0x79, 0x31, 0x9a, 0xaa, 0xdb, 0xe6, 0xae,
|
||||
0xcb, 0x1d, 0x5f, 0x18, 0x2c, 0x3f, 0x84, 0x09, 0x6e, 0x94, 0x24, 0x56, 0xca, 0xdf, 0x74, 0xc1,
|
||||
0x8b, 0x29, 0x2c, 0xec, 0xf1, 0xfa, 0x11, 0xe9, 0x7e, 0xe4, 0x0f, 0x51, 0xc6, 0xfa, 0x56, 0xac,
|
||||
0xa8, 0x56, 0x8c, 0x51, 0x59, 0xb4, 0x53, 0x3b, 0x8d, 0x99, 0x32, 0x54, 0xbc, 0x04, 0x55, 0xcd,
|
||||
0x89, 0x8c, 0xe2, 0x0b, 0x58, 0x90, 0x0f, 0x6c, 0xa7, 0x33, 0x8c, 0xf3, 0x47, 0x63, 0xe8, 0xdf,
|
||||
0xf4, 0xcb, 0x84, 0x72, 0xee, 0x48, 0xa2, 0xf9, 0x1f, 0x06, 0xdc, 0xd8, 0x6e, 0x34, 0x39, 0xcf,
|
||||
0xb7, 0x20, 0x3f, 0x54, 0x07, 0xe4, 0xc8, 0x87, 0x27, 0x32, 0xdc, 0x81, 0xdd, 0x4d, 0xde, 0x10,
|
||||
0xcd, 0x4a, 0x94, 0x16, 0x69, 0xaa, 0x7c, 0xda, 0x72, 0x74, 0xfc, 0x27, 0x03, 0xa6, 0x24, 0x4c,
|
||||
0x1c, 0x1d, 0x9e, 0x5a, 0x15, 0xd7, 0x55, 0x34, 0xed, 0x13, 0x54, 0xa7, 0x8e, 0xa5, 0xeb, 0xf8,
|
||||
0x11, 0x4c, 0x2b, 0xda, 0x30, 0x8a, 0xbe, 0x2b, 0x03, 0x3b, 0xf6, 0xc2, 0x4c, 0x3d, 0x6e, 0x40,
|
||||
0x12, 0xc3, 0x26, 0xb1, 0x1c, 0x41, 0x61, 0x4e, 0x38, 0xe8, 0x75, 0x45, 0xf9, 0x96, 0xdf, 0xf8,
|
||||
0x61, 0x1f, 0x0a, 0x0f, 0x11, 0x59, 0xf8, 0x6f, 0xb9, 0xb7, 0x83, 0x6d, 0x37, 0x9a, 0xe5, 0xd1,
|
||||
0x68, 0xc2, 0x8d, 0x5e, 0xda, 0x33, 0xf2, 0x3b, 0x63, 0xd2, 0xb1, 0x2b, 0x46, 0xea, 0xbf, 0x8d,
|
||||
0x5c, 0x39, 0xe7, 0x5a, 0x8d, 0x22, 0x56, 0xd1, 0x4b, 0x4d, 0x32, 0x7d, 0x47, 0xab, 0x62, 0xfc,
|
||||
0x3c, 0x17, 0xc3, 0xe8, 0x78, 0xc7, 0x83, 0x5e, 0x97, 0x25, 0x28, 0xa6, 0x4f, 0xc1, 0xdf, 0x87,
|
||||
0x99, 0x1d, 0x97, 0x75, 0x5d, 0xc6, 0x86, 0x78, 0xd3, 0x11, 0xcc, 0xa6, 0x99, 0x19, 0xc5, 0x9f,
|
||||
0x00, 0x35, 0x7a, 0xa2, 0xa3, 0x1a, 0xa6, 0x48, 0xf4, 0xb1, 0x71, 0x25, 0x85, 0x8d, 0x31, 0x4c,
|
||||
0x75, 0x7b, 0x21, 0x69, 0x37, 0x49, 0xcb, 0xf7, 0xda, 0xb1, 0xaa, 0xd3, 0x56, 0x8a, 0x16, 0xbd,
|
||||
0x0c, 0xb9, 0xb3, 0x18, 0xc5, 0xfb, 0x50, 0xdb, 0xb6, 0xbd, 0x16, 0xe9, 0x8c, 0x42, 0x11, 0xbc,
|
||||
0x02, 0xcb, 0x05, 0xbb, 0xc5, 0xf8, 0x47, 0x92, 0x07, 0xe2, 0x1f, 0x85, 0x93, 0x51, 0x5c, 0x07,
|
||||
0x94, 0xd9, 0xb7, 0x7c, 0x83, 0x2a, 0xcc, 0xe7, 0xf8, 0x19, 0xc5, 0x2e, 0x2c, 0x37, 0x53, 0x31,
|
||||
0x77, 0xe0, 0xb6, 0xce, 0x3c, 0xbb, 0x4b, 0x06, 0x66, 0x83, 0x27, 0x18, 0x93, 0x6c, 0x48, 0xbe,
|
||||
0x15, 0x4b, 0x8c, 0xa5, 0x2c, 0xb1, 0x0a, 0x66, 0xd1, 0x51, 0x8c, 0xe2, 0x2f, 0xbc, 0x09, 0x8c,
|
||||
0x1f, 0xc4, 0x66, 0x8f, 0x0a, 0x28, 0x3e, 0xda, 0x26, 0xb0, 0xc8, 0x47, 0x2e, 0x6f, 0xfe, 0xf4,
|
||||
0x67, 0x8f, 0xf8, 0x45, 0x7e, 0xcc, 0x2b, 0x4f, 0xff, 0x90, 0xa1, 0x3a, 0xfd, 0x77, 0xbc, 0x30,
|
||||
0xe4, 0x84, 0xbe, 0xb9, 0xdd, 0xff, 0x67, 0x05, 0xaa, 0x69, 0x97, 0x0c, 0xc6, 0x8f, 0x45, 0x09,
|
||||
0xf7, 0x63, 0x25, 0x22, 0xc6, 0xc4, 0xf3, 0xe7, 0xf8, 0xbe, 0xd3, 0x21, 0xf1, 0xa8, 0xe7, 0xa4,
|
||||
0x77, 0x5a, 0x6f, 0x86, 0x81, 0xeb, 0x39, 0xef, 0xec, 0x4e, 0x8f, 0x28, 0xf1, 0xf2, 0x04, 0xae,
|
||||
0x9f, 0xda, 0x2d, 0xf2, 0xd6, 0xda, 0x17, 0xd0, 0xbb, 0x5c, 0x30, 0x61, 0x46, 0x3f, 0x81, 0xc9,
|
||||
0xc0, 0xef, 0x90, 0x7d, 0x72, 0x41, 0x3a, 0xb5, 0x71, 0x2e, 0xb9, 0x92, 0x93, 0xdc, 0xf3, 0xc2,
|
||||
0xc7, 0x8f, 0x62, 0xc1, 0x3e, 0x37, 0x7a, 0x00, 0x15, 0xf2, 0xb9, 0x36, 0x31, 0xc4, 0x69, 0x15,
|
||||
0xf2, 0x39, 0xea, 0x0f, 0x75, 0x56, 0x62, 0x14, 0xff, 0xa8, 0x0f, 0x96, 0x9f, 0x9f, 0xb0, 0x30,
|
||||
0xb0, 0x5b, 0xe1, 0x30, 0xfe, 0xfc, 0xb3, 0x01, 0x73, 0x39, 0xa1, 0x12, 0x9b, 0x3f, 0x10, 0xb3,
|
||||
0xb9, 0x46, 0x52, 0x68, 0x4f, 0x64, 0x0b, 0x93, 0x5f, 0x40, 0x3f, 0x80, 0x79, 0x27, 0xdd, 0x84,
|
||||
0xbc, 0xb6, 0xd9, 0x47, 0xee, 0x94, 0x6b, 0x96, 0x6e, 0x09, 0xb7, 0xa1, 0xa6, 0xbf, 0x06, 0xa3,
|
||||
0xe8, 0xb5, 0xc0, 0x26, 0xea, 0x42, 0x12, 0x69, 0x35, 0xf1, 0x56, 0xe7, 0x25, 0x35, 0x32, 0xf8,
|
||||
0x00, 0x6a, 0x4e, 0x3c, 0x68, 0xd8, 0xf3, 0xd4, 0x47, 0xae, 0x6c, 0xc4, 0xa1, 0x5a, 0xb1, 0x92,
|
||||
0xb1, 0xe2, 0x07, 0x58, 0x2e, 0xd8, 0x6f, 0x14, 0x2f, 0xe6, 0xa3, 0xff, 0xcc, 0x42, 0x3c, 0xfe,
|
||||
0x44, 0x4f, 0xe1, 0x66, 0xab, 0x3f, 0xe7, 0x43, 0xd5, 0x04, 0xa1, 0xa4, 0xe6, 0x96, 0xe6, 0xa2,
|
||||
0x8e, 0xcc, 0x28, 0x7a, 0x02, 0x93, 0x9f, 0x92, 0x96, 0x1d, 0xcd, 0x0b, 0x26, 0x75, 0xa8, 0x60,
|
||||
0x2e, 0xe4, 0x89, 0xb1, 0xdc, 0x79, 0xd2, 0xf1, 0x4a, 0x39, 0xb5, 0x5b, 0x96, 0x72, 0xa9, 0xc6,
|
||||
0x18, 0xbd, 0x80, 0x69, 0x47, 0x1d, 0x0b, 0xa2, 0xa5, 0xc4, 0x4b, 0x99, 0xe1, 0xa2, 0x59, 0xd3,
|
||||
0x2f, 0x30, 0x8a, 0x9e, 0xc1, 0x14, 0x53, 0xc6, 0x74, 0x28, 0xb9, 0x5b, 0x66, 0x38, 0x68, 0x2e,
|
||||
0x69, 0xe9, 0x8c, 0xa2, 0xdf, 0xc1, 0x92, 0xa3, 0x1f, 0xa7, 0xa1, 0x3b, 0x99, 0x53, 0xf3, 0x03,
|
||||
0x2f, 0x13, 0x0f, 0x62, 0x61, 0x14, 0x9d, 0x4a, 0xef, 0xe7, 0xc7, 0x56, 0xe8, 0x6e, 0x7f, 0x83,
|
||||
0xc2, 0xb1, 0x9a, 0x79, 0x6f, 0x30, 0x13, 0xa3, 0xe8, 0x0d, 0xa0, 0x30, 0x37, 0x1c, 0x42, 0xab,
|
||||
0x42, 0x56, 0x3b, 0xba, 0x32, 0x6f, 0x97, 0xac, 0x32, 0x8a, 0x5a, 0x50, 0x73, 0x0a, 0xa6, 0x22,
|
||||
0x08, 0xa7, 0x52, 0x4a, 0x3b, 0xd3, 0x31, 0xef, 0x0e, 0xe4, 0x89, 0xf5, 0x76, 0x72, 0xd3, 0x08,
|
||||
0xa9, 0xb7, 0x76, 0x72, 0x22, 0xf5, 0x2e, 0x18, 0x63, 0x1c, 0xc1, 0xbc, 0x93, 0x1f, 0x0d, 0x20,
|
||||
0xbd, 0x94, 0x8c, 0xb2, 0xb5, 0xb2, 0x65, 0x5e, 0x60, 0x66, 0xce, 0xd2, 0xfd, 0x39, 0x5a, 0x16,
|
||||
0x22, 0xf9, 0x59, 0x81, 0x69, 0x16, 0x2d, 0xc9, 0x2b, 0x67, 0x7a, 0x6a, 0xf5, 0xca, 0xf9, 0x6e,
|
||||
0x5f, 0xbd, 0xb2, 0xae, 0x19, 0x3f, 0x80, 0x39, 0x37, 0xdb, 0xce, 0xa2, 0x15, 0x21, 0xa3, 0x6b,
|
||||
0xad, 0xcd, 0xd5, 0xe2, 0xc5, 0x38, 0xa9, 0x65, 0x72, 0xca, 0xa4, 0x56, 0xdb, 0x33, 0x99, 0xd4,
|
||||
0xe9, 0x2e, 0x29, 0xe7, 0xcd, 0xa8, 0x35, 0x28, 0xf0, 0xa6, 0xe8, 0x65, 0x0a, 0xbc, 0x29, 0x7b,
|
||||
0x8a, 0x67, 0x30, 0xd5, 0x56, 0xd0, 0xb7, 0xcc, 0xf1, 0x0c, 0x7e, 0x97, 0x39, 0x9e, 0x85, 0xea,
|
||||
0x91, 0xe3, 0xba, 0x69, 0x4c, 0x2b, 0x1d, 0x97, 0x47, 0xce, 0xd2, 0x71, 0x1a, 0x18, 0x8c, 0xde,
|
||||
0x43, 0xb5, 0xa5, 0xc3, 0xc8, 0x68, 0x3d, 0xa9, 0xa9, 0x05, 0x78, 0xdc, 0xdc, 0x28, 0x67, 0x88,
|
||||
0x2d, 0x2e, 0xb5, 0x94, 0x16, 0x57, 0x31, 0xb3, 0xb4, 0x78, 0x0a, 0x18, 0x47, 0xb7, 0xcb, 0xe8,
|
||||
0x24, 0x6f, 0x97, 0xc7, 0xdd, 0xf2, 0x76, 0x1a, 0x88, 0x2d, 0x6a, 0xa1, 0x0e, 0x5d, 0xaa, 0xb5,
|
||||
0xb0, 0x00, 0xf9, 0xaa, 0xb5, 0xb0, 0x10, 0xa0, 0xc6, 0xd1, 0x91, 0xc1, 0x87, 0x6a, 0x74, 0xe4,
|
||||
0xf1, 0xa6, 0x1a, 0x1d, 0x3a, 0x60, 0xf9, 0x01, 0x16, 0x99, 0x16, 0xac, 0xa3, 0x8d, 0x4c, 0xcd,
|
||||
0xcf, 0xb5, 0x0d, 0xe6, 0x9d, 0x01, 0x1c, 0xb1, 0xc6, 0x2c, 0x07, 0xa9, 0xa4, 0xc6, 0x5a, 0x4c,
|
||||
0x2a, 0x35, 0xd6, 0x63, 0x31, 0xf4, 0x6b, 0x58, 0x70, 0x34, 0x20, 0x06, 0x65, 0xeb, 0x4f, 0x06,
|
||||
0xa8, 0x99, 0xeb, 0xa5, 0xeb, 0x71, 0x74, 0x6a, 0x71, 0x86, 0x8c, 0xce, 0x22, 0x54, 0x23, 0xa3,
|
||||
0xb3, 0x10, 0xa6, 0xbc, 0x58, 0x7f, 0x7f, 0xfb, 0x90, 0x12, 0xef, 0x78, 0xaf, 0xa1, 0xfc, 0x55,
|
||||
0xca, 0x85, 0x7e, 0xc6, 0x7f, 0x4f, 0x26, 0x38, 0xe9, 0xf1, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff,
|
||||
0x5e, 0xb6, 0x4c, 0x79, 0x9d, 0x1d, 0x00, 0x00,
|
||||
var fileDescriptor_group_5c8d3aafef0e7d21 = []byte{
|
||||
// 1851 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0x5f, 0x53, 0xe4, 0xc6,
|
||||
0x11, 0x2f, 0x2d, 0x07, 0x77, 0xf4, 0x81, 0xe1, 0x06, 0x16, 0x74, 0x82, 0x03, 0x3c, 0x26, 0x0e,
|
||||
0x95, 0xf8, 0x96, 0xd4, 0x5d, 0xe2, 0xca, 0x1f, 0x57, 0x39, 0x36, 0xd8, 0x98, 0x84, 0x85, 0x9c,
|
||||
0x16, 0x3b, 0x15, 0xa7, 0x5c, 0x44, 0xec, 0x0e, 0xb2, 0x0e, 0xad, 0x34, 0x68, 0xb4, 0xe0, 0x72,
|
||||
0x39, 0x0f, 0xc9, 0x73, 0xfe, 0x3c, 0xe4, 0x31, 0x6f, 0xa9, 0x7c, 0x84, 0x7c, 0x81, 0x7c, 0x95,
|
||||
0x7c, 0x92, 0x94, 0x66, 0x46, 0xb3, 0x23, 0x69, 0xb4, 0xbb, 0xc1, 0x9b, 0x97, 0xad, 0x52, 0x4f,
|
||||
0xf7, 0x4c, 0x4f, 0xff, 0x9b, 0x5f, 0xf7, 0xc2, 0x13, 0x3f, 0x89, 0x07, 0x74, 0x9f, 0xff, 0xb6,
|
||||
0x68, 0x12, 0xa7, 0x31, 0x9a, 0xe5, 0x1f, 0xce, 0xde, 0x19, 0x25, 0xd1, 0xf3, 0xe3, 0xf6, 0xf3,
|
||||
0x0e, 0x49, 0x6e, 0x49, 0xb2, 0x4f, 0xaf, 0xfd, 0x7d, 0xce, 0xb0, 0xcf, 0x7a, 0xd7, 0x17, 0x77,
|
||||
0x6c, 0xff, 0x8e, 0x09, 0x01, 0xa7, 0x35, 0x96, 0x33, 0xf1, 0x28, 0x25, 0x89, 0xe4, 0xc7, 0xff,
|
||||
0xb2, 0xe0, 0x8d, 0x83, 0x84, 0x78, 0x29, 0x39, 0xca, 0x4e, 0x72, 0xc9, 0x0d, 0xda, 0x81, 0xc7,
|
||||
0x41, 0x14, 0xa4, 0x6d, 0xd2, 0xbf, 0x24, 0x09, 0xb3, 0xad, 0x9d, 0x99, 0xbd, 0x79, 0x57, 0x27,
|
||||
0xa1, 0x9f, 0xc2, 0x3c, 0xd7, 0xeb, 0x38, 0xba, 0x8a, 0xed, 0xc6, 0x8e, 0xb5, 0xf7, 0xf8, 0xc5,
|
||||
0x66, 0x8b, 0xf1, 0x03, 0x2f, 0x3c, 0x1a, 0x5c, 0x50, 0x2f, 0xf1, 0xfa, 0xac, 0x75, 0x94, 0xf3,
|
||||
0xb8, 0x43, 0x76, 0x84, 0x61, 0xc1, 0xeb, 0xf5, 0x83, 0xe8, 0x53, 0x46, 0x92, 0xe3, 0x43, 0x66,
|
||||
0xcf, 0xf0, 0xed, 0x0b, 0xb4, 0x4c, 0x83, 0xf8, 0x2e, 0x22, 0x89, 0xf8, 0xb6, 0x1f, 0xec, 0x58,
|
||||
0x99, 0x06, 0x1a, 0x09, 0xb7, 0x61, 0xa9, 0xa0, 0x35, 0xa3, 0x45, 0xa5, 0xac, 0xff, 0x49, 0x29,
|
||||
0xdc, 0x82, 0xe5, 0x23, 0x92, 0xf2, 0x25, 0xc6, 0xd7, 0xc8, 0x0d, 0x72, 0xe0, 0x91, 0x60, 0x38,
|
||||
0xcc, 0x6d, 0xa0, 0xbe, 0xf1, 0x2b, 0x78, 0x52, 0xe2, 0x67, 0x14, 0xbd, 0x07, 0xa0, 0x76, 0x14,
|
||||
0x22, 0xe3, 0x34, 0xd0, 0xf8, 0xf1, 0x05, 0x2c, 0x75, 0xe4, 0x96, 0xb9, 0x06, 0x27, 0xb0, 0xa4,
|
||||
0x18, 0x3e, 0x8e, 0x93, 0x0e, 0x49, 0xe5, 0xbd, 0xf0, 0xa8, 0x5d, 0x05, 0xa7, 0x5b, 0x16, 0xc5,
|
||||
0x08, 0x96, 0x8b, 0x07, 0x30, 0x8a, 0xff, 0x68, 0x81, 0x93, 0x5f, 0xe4, 0x03, 0x4a, 0xc3, 0xa0,
|
||||
0xeb, 0xa5, 0x41, 0x1c, 0x9d, 0x04, 0x2c, 0xcd, 0x14, 0x38, 0x04, 0xa0, 0x9e, 0x1f, 0x44, 0x9c,
|
||||
0x28, 0xcf, 0xde, 0x35, 0x9c, 0xed, 0x92, 0x9b, 0x01, 0x61, 0xe9, 0xaf, 0x14, 0xaf, 0xab, 0xc9,
|
||||
0xa1, 0x2d, 0x80, 0xab, 0x24, 0xee, 0x4b, 0x67, 0x36, 0xb8, 0x33, 0x35, 0x0a, 0xfe, 0x1a, 0x36,
|
||||
0x6a, 0x75, 0x60, 0x14, 0xad, 0xc2, 0x6c, 0x1a, 0xa7, 0x5e, 0xc8, 0xcf, 0x9f, 0x75, 0xc5, 0x07,
|
||||
0xfa, 0x08, 0x16, 0x7d, 0x19, 0xb0, 0xd9, 0xd1, 0xcc, 0x6e, 0x70, 0x7b, 0x6f, 0xd7, 0x59, 0x46,
|
||||
0xf2, 0xb9, 0x45, 0x29, 0xfc, 0x0d, 0x6c, 0x1e, 0x91, 0x34, 0x53, 0xc4, 0x25, 0x37, 0x06, 0x0b,
|
||||
0xac, 0xc1, 0xdc, 0x40, 0xe8, 0x6d, 0x71, 0xbd, 0xe5, 0x57, 0xc9, 0x32, 0x8d, 0xfb, 0x59, 0x06,
|
||||
0x7f, 0x03, 0xcf, 0x46, 0x9c, 0xfe, 0xff, 0xbe, 0xfb, 0x1f, 0x2c, 0x68, 0x9e, 0x27, 0x5e, 0xc4,
|
||||
0xae, 0x48, 0xc2, 0xf9, 0xce, 0xb2, 0x04, 0xcb, 0x6e, 0x6d, 0xc3, 0x43, 0x19, 0xea, 0xf2, 0xda,
|
||||
0xf9, 0x27, 0x7a, 0x1b, 0xde, 0x88, 0xc3, 0xde, 0x99, 0x96, 0x9c, 0xc2, 0x9f, 0x25, 0x6a, 0xc6,
|
||||
0x17, 0x91, 0x3b, 0x9d, 0x6f, 0x46, 0xf0, 0x15, 0xa9, 0xd8, 0x86, 0x35, 0x93, 0x0a, 0x8c, 0xe2,
|
||||
0xbf, 0x58, 0xb0, 0xf0, 0x8b, 0x38, 0x88, 0x54, 0x59, 0xaa, 0x57, 0x6a, 0x0b, 0x20, 0x21, 0x37,
|
||||
0x6d, 0xc2, 0x98, 0xe7, 0x93, 0x3c, 0xc0, 0x86, 0x94, 0x6c, 0xfd, 0x75, 0x1c, 0x44, 0x9d, 0x78,
|
||||
0x90, 0x74, 0x09, 0x57, 0x64, 0xd6, 0xd5, 0x28, 0x68, 0x17, 0x16, 0x83, 0xe8, 0x36, 0x48, 0x4b,
|
||||
0x05, 0xa7, 0x48, 0xc4, 0x4b, 0xb0, 0xa8, 0xe9, 0xc3, 0x28, 0xfe, 0xbb, 0x05, 0x1b, 0xe5, 0xa8,
|
||||
0xcd, 0x16, 0xe2, 0x88, 0x91, 0xb1, 0x0a, 0x8f, 0xca, 0x88, 0x6c, 0xfd, 0x4b, 0x2f, 0xea, 0x85,
|
||||
0xa4, 0xd7, 0x66, 0xbe, 0xb4, 0x9c, 0x46, 0xc9, 0x6a, 0xa8, 0xf8, 0x72, 0x09, 0x1b, 0x84, 0x29,
|
||||
0xd7, 0x77, 0xd6, 0x2d, 0xd0, 0xf0, 0x16, 0x6c, 0xd6, 0x2b, 0xc7, 0x28, 0xde, 0x83, 0x85, 0x57,
|
||||
0x83, 0x20, 0x1d, 0x6f, 0xde, 0xec, 0xe2, 0x1a, 0x27, 0xa3, 0xf8, 0xaf, 0x16, 0x34, 0xf3, 0x8c,
|
||||
0x15, 0x4f, 0x42, 0x9e, 0x2e, 0xf5, 0x57, 0x5e, 0x83, 0xb9, 0xab, 0x20, 0x4c, 0x49, 0xc2, 0xaf,
|
||||
0x3b, 0xeb, 0xca, 0xaf, 0x52, 0x22, 0x3d, 0xb8, 0x67, 0x22, 0x51, 0x58, 0x33, 0x29, 0x54, 0x9b,
|
||||
0x41, 0x3f, 0x87, 0x87, 0x7d, 0xf9, 0xbc, 0x89, 0xdc, 0x79, 0xbb, 0x2e, 0x77, 0xc4, 0x76, 0x1f,
|
||||
0x0f, 0xc2, 0x90, 0x17, 0xcd, 0x5c, 0x0c, 0x9f, 0x94, 0x4f, 0x54, 0xef, 0x46, 0xbd, 0x0d, 0xec,
|
||||
0xe2, 0xa9, 0xf3, 0xc3, 0xdd, 0x7e, 0x0b, 0xeb, 0xc6, 0xdd, 0x18, 0xd5, 0x55, 0xb5, 0xee, 0xa7,
|
||||
0x6a, 0x08, 0xe8, 0x97, 0x41, 0xf7, 0x5a, 0xe3, 0x19, 0xad, 0xe6, 0x2e, 0x2c, 0x5e, 0x07, 0xdd,
|
||||
0x6b, 0xd2, 0xcb, 0x9f, 0x68, 0xa1, 0x6c, 0x91, 0x98, 0x39, 0x34, 0x21, 0x1e, 0x8b, 0x23, 0x19,
|
||||
0x9f, 0xf2, 0x0b, 0x37, 0x61, 0xa5, 0x72, 0x1a, 0xa3, 0xf8, 0xf7, 0x3c, 0x64, 0xb2, 0x04, 0x22,
|
||||
0x3d, 0xbe, 0x96, 0x87, 0x4c, 0x31, 0x17, 0xac, 0x4a, 0x2e, 0x4c, 0xa7, 0xd2, 0xf6, 0xb8, 0xbb,
|
||||
0x2a, 0xc7, 0xd7, 0x06, 0xc8, 0x0f, 0x61, 0x8e, 0x9b, 0x23, 0x8f, 0x8f, 0xd1, 0xef, 0xb8, 0xe4,
|
||||
0xc5, 0x14, 0x56, 0x8f, 0x79, 0xcd, 0xc8, 0x74, 0x3f, 0x8f, 0x27, 0x28, 0x5d, 0x43, 0x2b, 0x36,
|
||||
0x74, 0x2b, 0x66, 0xf5, 0x53, 0x54, 0x9f, 0x5e, 0x11, 0x27, 0x95, 0xa8, 0x78, 0x1d, 0x9a, 0x86,
|
||||
0x13, 0x19, 0xc5, 0xb7, 0xb0, 0xaa, 0x1e, 0xd5, 0x30, 0x9c, 0xc4, 0xed, 0xd3, 0x31, 0xf4, 0x6f,
|
||||
0x86, 0xa5, 0x41, 0x3b, 0x77, 0x2a, 0x71, 0xfc, 0x0f, 0x0b, 0x1e, 0x1d, 0xb4, 0x3b, 0x9c, 0xe7,
|
||||
0xdb, 0xa0, 0x3d, 0xd4, 0x02, 0xe4, 0xab, 0xc7, 0x26, 0x33, 0xdc, 0xa9, 0xd7, 0xcf, 0xdf, 0x0d,
|
||||
0xc3, 0x0a, 0xfa, 0x1e, 0x2c, 0x17, 0xa9, 0xea, 0x39, 0xab, 0xd0, 0xf1, 0x9f, 0x2c, 0x58, 0x50,
|
||||
0xd0, 0x70, 0x7a, 0x18, 0x6a, 0x53, 0x5e, 0x57, 0xd3, 0x74, 0x48, 0xd0, 0x9d, 0x3a, 0x53, 0xac,
|
||||
0xdd, 0xe7, 0xb0, 0xa8, 0x69, 0xc3, 0x28, 0xfa, 0xae, 0x0a, 0x6c, 0xe1, 0x85, 0xa5, 0x96, 0x68,
|
||||
0x37, 0x72, 0xc3, 0xe6, 0xb1, 0x9c, 0xc1, 0x5f, 0x4e, 0x38, 0x1d, 0xf4, 0x65, 0xc9, 0x56, 0xdf,
|
||||
0xf8, 0xf9, 0x10, 0xfe, 0x4e, 0x10, 0x59, 0xf8, 0x6f, 0x95, 0xf7, 0x82, 0x1d, 0xb4, 0x3b, 0xa3,
|
||||
0xa3, 0xd1, 0x81, 0x47, 0x83, 0xa2, 0x67, 0xd4, 0x77, 0xc9, 0xa4, 0x33, 0xf7, 0x8c, 0xd4, 0x7f,
|
||||
0x5b, 0x95, 0x12, 0xce, 0xb5, 0x9a, 0x46, 0xac, 0xa2, 0x8f, 0x0c, 0xc9, 0xf4, 0x1d, 0xa3, 0x8a,
|
||||
0xe2, 0x49, 0xae, 0x87, 0xce, 0x62, 0xc7, 0xd3, 0x41, 0x9f, 0xe5, 0xc8, 0x65, 0x48, 0xc1, 0xdf,
|
||||
0x87, 0xa5, 0xc3, 0x80, 0xf5, 0x03, 0xc6, 0x26, 0x78, 0xc7, 0x11, 0x2c, 0x17, 0x99, 0x19, 0xc5,
|
||||
0xaf, 0x01, 0xb5, 0x07, 0xb2, 0x8b, 0x9a, 0xa4, 0x48, 0x0c, 0xf1, 0x70, 0xa3, 0x80, 0x87, 0x31,
|
||||
0x2c, 0xf4, 0x07, 0x29, 0xe9, 0x75, 0x48, 0x37, 0x8e, 0x7a, 0x42, 0xd5, 0x45, 0xb7, 0x40, 0xcb,
|
||||
0x5e, 0x86, 0xca, 0x59, 0x8c, 0xe2, 0x13, 0xb0, 0x0f, 0xbc, 0xa8, 0x4b, 0xc2, 0x69, 0x28, 0x82,
|
||||
0x37, 0xe0, 0x69, 0xcd, 0x6e, 0x02, 0xf3, 0x28, 0xf2, 0x58, 0xcc, 0xa3, 0x71, 0x32, 0x8a, 0x5b,
|
||||
0x80, 0x4a, 0xfb, 0x8e, 0xde, 0xa0, 0x09, 0x2b, 0x15, 0x7e, 0x46, 0x71, 0x00, 0x4f, 0x3b, 0x85,
|
||||
0x98, 0x3b, 0x0d, 0xba, 0xd7, 0x91, 0xd7, 0x27, 0x63, 0xb3, 0x21, 0x92, 0x8c, 0x79, 0x36, 0xe4,
|
||||
0xdf, 0x9a, 0x25, 0x66, 0x0a, 0x96, 0xd8, 0x04, 0xa7, 0xee, 0x28, 0x46, 0xf1, 0xd7, 0xbc, 0xf1,
|
||||
0x13, 0x0f, 0x62, 0x67, 0x40, 0x25, 0xfc, 0x9e, 0x6e, 0xe3, 0x57, 0xe7, 0xa3, 0x80, 0x37, 0x7c,
|
||||
0xe6, 0xb3, 0xa7, 0xfc, 0x22, 0xbf, 0xe4, 0x95, 0x67, 0x78, 0xc8, 0x44, 0xdd, 0xfd, 0x67, 0xbc,
|
||||
0x30, 0x54, 0x84, 0xbe, 0x75, 0x8b, 0xff, 0xcf, 0x06, 0x34, 0x8b, 0x2e, 0x19, 0x8f, 0x19, 0xeb,
|
||||
0x12, 0xee, 0xc7, 0x5a, 0x44, 0xcc, 0xc8, 0xe7, 0xcf, 0x8f, 0x63, 0x3f, 0x24, 0x62, 0xb0, 0x73,
|
||||
0x39, 0xb8, 0x6a, 0x75, 0xd2, 0x24, 0x88, 0xfc, 0xcf, 0xbc, 0x70, 0x40, 0xb4, 0x78, 0x79, 0x17,
|
||||
0x1e, 0x5e, 0x79, 0x5d, 0xf2, 0xa9, 0x7b, 0x22, 0xe1, 0xf6, 0x68, 0xc1, 0x9c, 0x19, 0xfd, 0x04,
|
||||
0xe6, 0x93, 0x38, 0x24, 0x27, 0xe4, 0x96, 0x84, 0xf6, 0x2c, 0x97, 0xdc, 0xa8, 0x48, 0x1e, 0x47,
|
||||
0xe9, 0xcb, 0x17, 0x42, 0x70, 0xc8, 0x8d, 0xde, 0x81, 0x06, 0xf9, 0xca, 0x9e, 0x9b, 0xe0, 0xb4,
|
||||
0x06, 0xf9, 0x2a, 0xeb, 0x09, 0x4d, 0x56, 0x62, 0x14, 0xff, 0x68, 0x08, 0x93, 0x3f, 0xb8, 0x64,
|
||||
0x69, 0xe2, 0x75, 0xd3, 0x49, 0xfc, 0xf9, 0x67, 0x0b, 0x9e, 0x54, 0x84, 0x46, 0xd8, 0xfc, 0x1d,
|
||||
0x39, 0x89, 0x6b, 0xe7, 0x85, 0xf6, 0x52, 0xb5, 0x2d, 0xd5, 0x05, 0xf4, 0x03, 0x58, 0xf1, 0x8b,
|
||||
0x8d, 0xc7, 0x27, 0x1e, 0xfb, 0x92, 0x3b, 0xe5, 0x81, 0x6b, 0x5a, 0xc2, 0x3d, 0xb0, 0xcd, 0xd7,
|
||||
0x60, 0x14, 0x7d, 0x22, 0xb1, 0x89, 0xbe, 0x90, 0x47, 0x9a, 0x2d, 0xdf, 0xea, 0xaa, 0xa4, 0x41,
|
||||
0x06, 0x9f, 0x82, 0xed, 0x8b, 0xe1, 0xc2, 0x71, 0xa4, 0x3f, 0x72, 0xa3, 0xc6, 0x1a, 0xba, 0x15,
|
||||
0x1b, 0x25, 0x2b, 0x7e, 0x01, 0x4f, 0x6b, 0xf6, 0x9b, 0xc6, 0x8b, 0xf9, 0xe2, 0x3f, 0xcb, 0x20,
|
||||
0x86, 0x9d, 0xe8, 0x3d, 0x78, 0xdc, 0x1d, 0xce, 0xf6, 0x50, 0x33, 0x47, 0x28, 0x85, 0x29, 0xa5,
|
||||
0xb3, 0x66, 0x22, 0x33, 0x8a, 0xde, 0x85, 0xf9, 0xd7, 0x79, 0x9b, 0x8e, 0x56, 0x24, 0x93, 0x3e,
|
||||
0x48, 0x70, 0x56, 0xab, 0x44, 0x21, 0x77, 0x93, 0x77, 0xb9, 0x4a, 0x4e, 0xef, 0x90, 0x95, 0x5c,
|
||||
0xa1, 0x19, 0x46, 0x1f, 0xc2, 0xa2, 0xaf, 0x8f, 0x02, 0xd1, 0x7a, 0xee, 0xa5, 0xd2, 0x40, 0xd1,
|
||||
0xb1, 0xcd, 0x0b, 0x8c, 0xa2, 0xf7, 0x61, 0x81, 0x69, 0xa3, 0x39, 0x94, 0xdf, 0xad, 0x34, 0x10,
|
||||
0x74, 0xd6, 0x8d, 0x74, 0x46, 0xd1, 0xef, 0x60, 0xdd, 0x37, 0x8f, 0xd0, 0xd0, 0x9b, 0xa5, 0x53,
|
||||
0xab, 0x43, 0x2e, 0x07, 0x8f, 0x63, 0x61, 0x14, 0x5d, 0x29, 0xef, 0x57, 0x47, 0x55, 0xe8, 0xad,
|
||||
0xe1, 0x06, 0xb5, 0xa3, 0x34, 0x67, 0x77, 0x3c, 0x13, 0xa3, 0xe8, 0x15, 0xa0, 0xb4, 0x32, 0x10,
|
||||
0x42, 0x9b, 0x52, 0xd6, 0x38, 0xae, 0x72, 0x9e, 0x8d, 0x58, 0x65, 0x14, 0x75, 0xc1, 0xf6, 0x6b,
|
||||
0x26, 0x21, 0x08, 0x17, 0x52, 0xca, 0x38, 0xc7, 0x71, 0xde, 0x1a, 0xcb, 0x23, 0xf4, 0xf6, 0x2b,
|
||||
0x13, 0x08, 0xa5, 0xb7, 0x71, 0x5a, 0xa2, 0xf4, 0xae, 0x19, 0x5d, 0x9c, 0xc3, 0x8a, 0x5f, 0x1d,
|
||||
0x0a, 0x20, 0xb3, 0x94, 0x8a, 0xb2, 0xad, 0x51, 0xcb, 0xbc, 0xc0, 0x2c, 0x5d, 0x17, 0xfb, 0x73,
|
||||
0xf4, 0x54, 0x8a, 0x54, 0xa7, 0x04, 0x8e, 0x53, 0xb7, 0xa4, 0xae, 0x5c, 0xea, 0xa9, 0xf5, 0x2b,
|
||||
0x57, 0xbb, 0x7d, 0xfd, 0xca, 0xa6, 0x66, 0xfc, 0x14, 0x9e, 0x04, 0xe5, 0x76, 0x16, 0x6d, 0x48,
|
||||
0x19, 0x53, 0x6b, 0xed, 0x6c, 0xd6, 0x2f, 0x8a, 0xa4, 0x56, 0xc9, 0xa9, 0x92, 0x5a, 0x6f, 0xcf,
|
||||
0x54, 0x52, 0x17, 0xbb, 0xa4, 0x8a, 0x37, 0xb3, 0xd6, 0xa0, 0xc6, 0x9b, 0xb2, 0x97, 0xa9, 0xf1,
|
||||
0xa6, 0xea, 0x29, 0xde, 0x87, 0x85, 0x9e, 0x86, 0xbe, 0x55, 0x8e, 0x97, 0xf0, 0xbb, 0xca, 0xf1,
|
||||
0x32, 0x54, 0xcf, 0x1c, 0xd7, 0x2f, 0x62, 0x5a, 0xe5, 0xb8, 0x2a, 0x72, 0x56, 0x8e, 0x33, 0xc0,
|
||||
0x60, 0xf4, 0x39, 0x34, 0xbb, 0x26, 0x8c, 0x8c, 0xb6, 0xf3, 0x9a, 0x5a, 0x83, 0xc7, 0x9d, 0x9d,
|
||||
0xd1, 0x0c, 0xc2, 0xe2, 0x4a, 0x4b, 0x65, 0x71, 0x1d, 0x33, 0x2b, 0x8b, 0x17, 0x80, 0x71, 0x76,
|
||||
0xbb, 0x92, 0x4e, 0xea, 0x76, 0x55, 0xdc, 0xad, 0x6e, 0x67, 0x80, 0xd8, 0xb2, 0x16, 0x9a, 0xd0,
|
||||
0xa5, 0x5e, 0x0b, 0x6b, 0x90, 0xaf, 0x5e, 0x0b, 0x6b, 0x01, 0xaa, 0x88, 0x8e, 0x12, 0x3e, 0xd4,
|
||||
0xa3, 0xa3, 0x8a, 0x37, 0xf5, 0xe8, 0x30, 0x01, 0xcb, 0x2f, 0x60, 0x8d, 0x19, 0xc1, 0x3a, 0xda,
|
||||
0x29, 0xd5, 0xfc, 0x4a, 0xdb, 0xe0, 0xbc, 0x39, 0x86, 0x43, 0x68, 0xcc, 0x2a, 0x90, 0x4a, 0x69,
|
||||
0x6c, 0xc4, 0xa4, 0x4a, 0x63, 0x33, 0x16, 0x43, 0xbf, 0x86, 0x55, 0xdf, 0x00, 0x62, 0x50, 0xb9,
|
||||
0xfe, 0x94, 0x80, 0x9a, 0xb3, 0x3d, 0x72, 0x5d, 0x44, 0xa7, 0x11, 0x67, 0xa8, 0xe8, 0xac, 0x43,
|
||||
0x35, 0x2a, 0x3a, 0x6b, 0x61, 0xca, 0x87, 0xdb, 0x9f, 0x3f, 0x3b, 0xa3, 0x24, 0xba, 0x38, 0x6e,
|
||||
0x6b, 0x7f, 0x8c, 0x72, 0xa1, 0x9f, 0xf1, 0xdf, 0xcb, 0x39, 0x4e, 0x7a, 0xf9, 0xdf, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0x4a, 0x6c, 0x49, 0xeb, 0x8b, 0x1d, 0x00, 0x00,
|
||||
}
|
||||
|
@ -420,12 +420,6 @@ message OrganizationChangedTips{
|
||||
|
||||
|
||||
//////////////////////friend/////////////////////
|
||||
//message FriendInfo{
|
||||
// UserInfo OwnerUser = 1;
|
||||
// string Remark = 2;
|
||||
// uint64 CreateTime = 3;
|
||||
// UserInfo FriendUser = 4;
|
||||
//}
|
||||
|
||||
message FriendApplication{
|
||||
int64 addTime = 1;
|
||||
@ -440,18 +434,18 @@ message FromToUserID{
|
||||
|
||||
//FromUserID apply to add ToUserID
|
||||
message FriendApplicationTips{
|
||||
FromToUserID fromToUserID = 1;
|
||||
FromToUserID fromToUserID = 1; //from:发起者; to:接收者
|
||||
}
|
||||
|
||||
//FromUserID accept or reject ToUserID
|
||||
message FriendApplicationApprovedTips{
|
||||
FromToUserID fromToUserID = 1;
|
||||
FromToUserID fromToUserID = 1; //from:同意者;to:请求发起者
|
||||
string handleMsg = 2;
|
||||
}
|
||||
|
||||
//FromUserID accept or reject ToUserID
|
||||
message FriendApplicationRejectedTips{
|
||||
FromToUserID fromToUserID = 1;
|
||||
FromToUserID fromToUserID = 1; //from:拒绝者;to:请求发起者
|
||||
string handleMsg = 2;
|
||||
}
|
||||
|
||||
@ -466,21 +460,21 @@ message FriendAddedTips{
|
||||
|
||||
// FromUserID deleted a friend ToUserID
|
||||
message FriendDeletedTips{
|
||||
FromToUserID fromToUserID = 1;
|
||||
FromToUserID fromToUserID = 1; //from:owner; to:friend
|
||||
}
|
||||
|
||||
|
||||
|
||||
message BlackAddedTips{
|
||||
FromToUserID fromToUserID = 1;
|
||||
FromToUserID fromToUserID = 1; //from:owner; to:black
|
||||
}
|
||||
|
||||
message BlackDeletedTips{
|
||||
FromToUserID fromToUserID = 1;
|
||||
FromToUserID fromToUserID = 1; //from:owner; to:black
|
||||
}
|
||||
|
||||
message FriendInfoChangedTips{
|
||||
FromToUserID fromToUserID = 1;
|
||||
FromToUserID fromToUserID = 1; //from:changed; to:friend
|
||||
}
|
||||
//////////////////////user/////////////////////
|
||||
message UserInfoUpdatedTips{
|
||||
|
Loading…
x
Reference in New Issue
Block a user