Merge branch 'errcode' of github.com:OpenIMSDK/Open-IM-Server into errcode

 Conflicts:
	cmd/rpc/auth/main.go
	cmd/rpc/friend/main.go
	cmd/rpc/group/main.go
	cmd/rpc/msg/main.go
	cmd/rpc/user/main.go
	internal/rpc/auth/auth.go
	internal/rpc/conversation/conversaion.go
	internal/rpc/friend/friend.go
	internal/rpc/group/callback.go
	internal/rpc/group/group.go
	internal/rpc/msg/pull_message.go
	internal/rpc/msg/query_msg.go
	internal/rpc/msg/rpc_chat.go
	internal/rpc/msg/send_msg.go
	internal/rpc/user/user.go
	pkg/common/db/cache/redis.go
	pkg/common/db/controller/msg.go
	pkg/common/http/http_client.go
This commit is contained in:
wangchuxiao
2023-02-15 16:03:31 +08:00
92 changed files with 5293 additions and 5362 deletions
+19 -9
View File
@@ -25,35 +25,45 @@ type CommonCallbackReq struct {
Ex string `json:"ex"`
}
func (c *CommonCallbackReq) GetCallbackCommand() string {
return c.CallbackCommand
}
type CallbackReq interface {
GetCallbackCommand() string
}
type CallbackResp interface {
Parse() (err error)
}
type CommonCallbackResp struct {
ActionCode int `json:"actionCode"`
ErrCode int32 `json:"errCode"`
ErrMsg string `json:"errMsg"`
OperationID string `json:"operationID"`
ActionCode int `json:"actionCode"`
ErrCode int32 `json:"errCode"`
ErrMsg string `json:"errMsg"`
}
func (c *CommonCallbackResp) Parse() (err error) {
func (c CommonCallbackResp) Parse() error {
if c.ActionCode != constant.NoError || c.ErrCode != constant.NoError {
newErr := constant.ErrCallback
newErr.ErrCode = c.ErrCode
newErr.DetailErrMsg = fmt.Sprintf("callback response error actionCode is %d, errCode is %d, errMsg is %s", c.ActionCode, c.ErrCode, c.ErrMsg)
err = newErr
return
return newErr.Wrap()
}
return
return nil
}
type UserStatusBaseCallback struct {
CallbackCommand string `json:"callbackCommand"`
OperationID string `json:"operationID"`
PlatformID int32 `json:"platformID"`
PlatformID int `json:"platformID"`
Platform string `json:"platform"`
}
func (c UserStatusBaseCallback) GetCallbackCommand() string {
return c.CallbackCommand
}
type UserStatusCallbackReq struct {
UserStatusBaseCallback
UserID string `json:"userID"`
+2 -2
View File
@@ -1,7 +1,7 @@
package callbackstruct
type CallbackBeforeAddFriendReq struct {
CallbackCommand string `json:"callbackCommand"`
CallbackCommand `json:"callbackCommand"`
FromUserID string `json:"fromUserID" `
ToUserID string `json:"toUserID"`
ReqMsg string `json:"reqMsg"`
@@ -9,5 +9,5 @@ type CallbackBeforeAddFriendReq struct {
}
type CallbackBeforeAddFriendResp struct {
*CommonCallbackResp
CommonCallbackResp
}
+22 -16
View File
@@ -1,19 +1,25 @@
package callbackstruct
import (
"Open_IM/pkg/proto/group"
"Open_IM/pkg/apistruct"
common "Open_IM/pkg/proto/sdkws"
)
type CallbackCommand string
func (c CallbackCommand) GetCallbackCommand() string {
return string(c)
}
type CallbackBeforeCreateGroupReq struct {
CallbackCommand string `json:"callbackCommand"`
OperationID string `json:"operationID"`
CallbackCommand `json:"callbackCommand"`
common.GroupInfo
InitMemberList []*group.GroupAddMemberInfo `json:"initMemberList"`
InitMemberList []*apistruct.GroupAddMemberInfo `json:"initMemberList"`
}
type CallbackBeforeCreateGroupResp struct {
*CommonCallbackResp
CommonCallbackResp
GroupID *string `json:"groupID"`
GroupName *string `json:"groupName"`
Notification *string `json:"notification"`
@@ -30,7 +36,7 @@ type CallbackBeforeCreateGroupResp struct {
}
type CallbackBeforeMemberJoinGroupReq struct {
CallbackCommand string `json:"callbackCommand"`
CallbackCommand `json:"callbackCommand"`
OperationID string `json:"operationID"`
GroupID string `json:"groupID"`
UserID string `json:"userID"`
@@ -39,8 +45,8 @@ type CallbackBeforeMemberJoinGroupReq struct {
}
type CallbackBeforeMemberJoinGroupResp struct {
*CommonCallbackResp
NickName *string `json:"nickName"`
CommonCallbackResp
Nickname *string `json:"nickname"`
FaceURL *string `json:"faceURL"`
RoleLevel *int32 `json:"roleLevel"`
MuteEndTime *int64 `json:"muteEndTime"`
@@ -48,18 +54,18 @@ type CallbackBeforeMemberJoinGroupResp struct {
}
type CallbackBeforeSetGroupMemberInfoReq struct {
CallbackCommand string `json:"callbackCommand"`
OperationID string `json:"operationID"`
GroupID string `json:"groupID"`
UserID string `json:"userID"`
Nickname string `json:"nickName"`
FaceURL string `json:"faceURL"`
RoleLevel int32 `json:"roleLevel"`
Ex string `json:"ex"`
CallbackCommand `json:"callbackCommand"`
OperationID string `json:"operationID"`
GroupID string `json:"groupID"`
UserID string `json:"userID"`
Nickname *string `json:"nickName"`
FaceURL *string `json:"faceURL"`
RoleLevel *int32 `json:"roleLevel"`
Ex *string `json:"ex"`
}
type CallbackBeforeSetGroupMemberInfoResp struct {
*CommonCallbackResp
CommonCallbackResp
Ex *string `json:"ex"`
Nickname *string `json:"nickName"`
FaceURL *string `json:"faceURL"`
+10 -10
View File
@@ -11,7 +11,7 @@ type CallbackBeforeSendSingleMsgReq struct {
}
type CallbackBeforeSendSingleMsgResp struct {
*CommonCallbackResp
CommonCallbackResp
}
type CallbackAfterSendSingleMsgReq struct {
@@ -20,7 +20,7 @@ type CallbackAfterSendSingleMsgReq struct {
}
type CallbackAfterSendSingleMsgResp struct {
*CommonCallbackResp
CommonCallbackResp
}
type CallbackBeforeSendGroupMsgReq struct {
@@ -29,7 +29,7 @@ type CallbackBeforeSendGroupMsgReq struct {
}
type CallbackBeforeSendGroupMsgResp struct {
*CommonCallbackResp
CommonCallbackResp
}
type CallbackAfterSendGroupMsgReq struct {
@@ -38,7 +38,7 @@ type CallbackAfterSendGroupMsgReq struct {
}
type CallbackAfterSendGroupMsgResp struct {
*CommonCallbackResp
CommonCallbackResp
}
type CallbackMsgModifyCommandReq struct {
@@ -46,7 +46,7 @@ type CallbackMsgModifyCommandReq struct {
}
type CallbackMsgModifyCommandResp struct {
*CommonCallbackResp
CommonCallbackResp
Content *string `json:"content"`
RecvID *string `json:"recvID"`
GroupID *string `json:"groupID"`
@@ -67,8 +67,8 @@ type CallbackMsgModifyCommandResp struct {
Ex *string `json:"ex"`
}
type CallbackBeforeSetMessageReactionExtReq struct {
OperationID string `json:"operationID"`
CallbackCommand string `json:"callbackCommand"`
OperationID string `json:"operationID"`
CallbackCommand `json:"callbackCommand"`
SourceID string `json:"sourceID"`
OpUserID string `json:"opUserID"`
SessionType int32 `json:"sessionType"`
@@ -79,13 +79,13 @@ type CallbackBeforeSetMessageReactionExtReq struct {
MsgFirstModifyTime int64 `json:"msgFirstModifyTime"`
}
type CallbackBeforeSetMessageReactionExtResp struct {
*CommonCallbackResp
CommonCallbackResp
ResultReactionExtensionList []*msg.KeyValueResp `json:"resultReactionExtensionList"`
MsgFirstModifyTime int64 `json:"msgFirstModifyTime"`
}
type CallbackDeleteMessageReactionExtReq struct {
CallbackCommand `json:"callbackCommand"`
OperationID string `json:"operationID"`
CallbackCommand string `json:"callbackCommand"`
SourceID string `json:"sourceID"`
OpUserID string `json:"opUserID"`
SessionType int32 `json:"sessionType"`
@@ -95,7 +95,7 @@ type CallbackDeleteMessageReactionExtReq struct {
MsgFirstModifyTime int64 `json:"msgFirstModifyTime"`
}
type CallbackDeleteMessageReactionExtResp struct {
*CommonCallbackResp
CommonCallbackResp
ResultReactionExtensionList []*msg.KeyValueResp `json:"resultReactionExtensionList"`
MsgFirstModifyTime int64 `json:"msgFirstModifyTime"`
}
+7 -7
View File
@@ -2,31 +2,31 @@ package callbackstruct
type CallbackUserOnlineReq struct {
UserStatusCallbackReq
Token string `json:"token"`
Seq int `json:"seq"`
//Token string `json:"token"`
Seq int64 `json:"seq"`
IsAppBackground bool `json:"isAppBackground"`
ConnID string `json:"connID"`
}
type CallbackUserOnlineResp struct {
*CommonCallbackResp
CommonCallbackResp
}
type CallbackUserOfflineReq struct {
UserStatusCallbackReq
Seq int `json:"seq"`
Seq int64 `json:"seq"`
ConnID string `json:"connID"`
}
type CallbackUserOfflineResp struct {
*CommonCallbackResp
CommonCallbackResp
}
type CallbackUserKickOffReq struct {
UserStatusCallbackReq
Seq int `json:"seq"`
Seq int64 `json:"seq"`
}
type CallbackUserKickOffResp struct {
*CommonCallbackResp
CommonCallbackResp
}
+2 -2
View File
@@ -15,7 +15,7 @@ type CallbackBeforePushReq struct {
}
type CallbackBeforePushResp struct {
*CommonCallbackResp
CommonCallbackResp
UserIDList []string `json:"userIDList"`
OfflinePushInfo *common.OfflinePushInfo `json:"offlinePushInfo"`
}
@@ -34,7 +34,7 @@ type CallbackBeforeSuperGroupOnlinePushReq struct {
}
type CallbackBeforeSuperGroupOnlinePushResp struct {
*CommonCallbackResp
CommonCallbackResp
UserIDList []string `json:"userIDList"`
OfflinePushInfo *common.OfflinePushInfo `json:"offlinePushInfo"`
}
+14
View File
@@ -13,6 +13,8 @@ var (
ErrUserIDNotFound = &ErrInfo{UserIDNotFoundError, "UserIDNotFoundError", ""}
ErrGroupIDNotFound = &ErrInfo{GroupIDNotFoundError, "GroupIDNotFoundError", ""}
ErrGroupIDExisted = &ErrInfo{GroupIDNotFoundError, "GroupIDExisted", ""} // todo group id 已存在
ErrGroupIDExisted = &ErrInfo{GroupIDNotFoundError, "GroupIDExisted", ""} // todo group id 已存在
ErrRecordNotFound = &ErrInfo{RecordNotFoundError, "RecordNotFoundError", ""}
@@ -45,6 +47,13 @@ var (
ErrDB = ErrDatabase
ErrSendLimit = ErrInternalServer
ErrBlockedByPeer = &ErrInfo{BlockedByPeer, "BlockedByPeer", ""}
//不是对方的好友
ErrNotPeersFriend = &ErrInfo{NotPeersFriend, "NotPeersFriend", ""}
//
ErrMutedInGroup = &ErrInfo{MutedInGroup, "MutedInGroup", ""}
ErrMutedGroup = &ErrInfo{MutedGroup, "MutedGroup", ""}
)
const (
@@ -92,6 +101,8 @@ const (
RelationshipAlreadyError = 92001 //已经是好友关系(或者黑名单)
NotRelationshipYetError = 92002 //不是好友关系(或者黑名单)
CanNotAddYourselfError = 92003 //不能添加自己为好友
BlockedByPeer = 92004 //被对方拉黑
NotPeersFriend = 92005 //不是对方的好友
)
// 群组错误码
@@ -103,6 +114,9 @@ const (
OwnerNotAllowedQuitError = 93004 //群主不能退群
GroupTypeNotSupport = 93005
GroupNoOwner = 93006
MutedInGroup = 93007 //群成员被禁言
MutedGroup = 93008 //群被禁言
)
// 用户错误码
+40 -4
View File
@@ -20,21 +20,25 @@ const (
superGroupRecvMsgNotNotifyUserIDsKey = "SUPER_GROUP_RECV_MSG_NOT_NOTIFY_USER_IDS:"
conversationExpireTime = time.Second * 60 * 60 * 12
)
type FuncDB func() (string, error)
// arg fn will exec when no data in cache
type ConversationCache interface {
// get user's conversationIDs from cache
GetUserConversationIDs(ctx context.Context, userID string, fn func(ctx context.Context, userID string) ([]string, error)) ([]string, error)
GetUserConversationIDs(ctx context.Context, userID string, fn FuncDB) ([]string, error)
// del user's conversationIDs from cache, call when a user add or reduce a conversation
DelUserConversationIDs(ctx context.Context, userID string) error
DelUsersConversationIDs(ctx context.Context,userIDList []string)error
// get one conversation from cache
GetConversation(ctx context.Context, ownerUserID, conversationID string, fn func(ctx context.Context, ownerUserID, conversationID string) (*relationTb.ConversationModel, error)) (*relationTb.ConversationModel, error)
GetConversation(ctx context.Context, ownerUserID, conversationID string, fn FuncDB) (*relationTb.ConversationModel, error)
// get one conversation from cache
GetConversations(ctx context.Context, ownerUserID string, conversationIDs []string, fn func(ctx context.Context, ownerUserID, conversationIDs []string) ([]*relationTb.ConversationModel, error)) ([]*relationTb.ConversationModel, error)
GetConversations(ctx context.Context, ownerUserID string, conversationIDs []string, fn FuncDB)([]*relationTb.ConversationModel, error)
// get one user's all conversations from cache
GetUserAllConversations(ctx context.Context, ownerUserID string, fn func(ctx context.Context, ownerUserIDs string) ([]*relationTb.ConversationModel, error)) ([]*relationTb.ConversationModel, error)
GetUserAllConversations(ctx context.Context, ownerUserID string, fn FuncDB ) ([]*relationTb.ConversationModel, error)
// del one conversation from cache, call when one user's conversation Info changed
DelConversation(ctx context.Context, ownerUserID, conversationID string) error
DelUserConversations(ctx context.Context, ownerUserID string, conversationIDList []string) error
DelUsersConversation(ctx context.Context, ownerUserIDList []string, conversationID string) error
// get user conversation recv msg from cache
GetUserRecvMsgOpt(ctx context.Context, ownerUserID, conversationID string, fn func(ctx context.Context, ownerUserID, conversationID string) (opt int, err error)) (opt int, err error)
// del user recv msg opt from cache, call when user's conversation recv msg opt changed
@@ -51,6 +55,38 @@ type ConversationRedis struct {
rcClient *rockscache.Client
}
func (c *ConversationRedis) GetUserConversationIDs(ctx context.Context, userID string, fn func(ctx context.Context, userID string) ([]string, error)) ([]string, error) {
panic("implement me")
}
func (c *ConversationRedis) DelUsersConversationIDs(ctx context.Context, userIDList []string) error {
panic("implement me")
}
func (c *ConversationRedis) GetConversation(ctx context.Context, ownerUserID, conversationID string, fn func(ctx context.Context, ownerUserID string, conversationID string) (*relationTb.ConversationModel, error)) (*relationTb.ConversationModel, error) {
panic("implement me")
}
func (c *ConversationRedis) GetConversations(ctx context.Context, ownerUserID string, conversationIDs []string, fn FuncDB) ([]*relationTb.ConversationModel, error) {
panic("implement me")
}
func (c *ConversationRedis) GetUserAllConversations(ctx context.Context, ownerUserID string, fn FuncDB) ([]*relationTb.ConversationModel, error) {
panic("implement me")
}
func (c *ConversationRedis) DelUsersConversation(ctx context.Context, ownerUserIDList []string, conversationID string) error {
panic("implement me")
}
func (c *ConversationRedis) GetUserRecvMsgOpt(ctx context.Context, ownerUserID, conversationID string, fn func(ctx context.Context, ownerUserID string, conversationID string) (opt int, err error)) (opt int, err error) {
panic("implement me")
}
func (c *ConversationRedis) GetSuperGroupRecvMsgNotNotifyUserIDs(ctx context.Context, groupID string, fn func(ctx context.Context, groupID string) (userIDs []string, err error)) (userIDs []string, err error) {
panic("implement me")
}
func NewConversationRedis(rcClient *rockscache.Client) *ConversationRedis {
return &ConversationRedis{rcClient: rcClient}
}
+126 -115
View File
@@ -1,17 +1,14 @@
package cache
import (
"Open_IM/pkg/common/db/relation"
relationTb "Open_IM/pkg/common/db/table/relation"
"Open_IM/pkg/common/db/unrelation"
"Open_IM/pkg/common/tracelog"
"Open_IM/pkg/utils"
"context"
"encoding/json"
"github.com/dtm-labs/rockscache"
"github.com/go-redis/redis/v8"
"math/big"
"strconv"
"strings"
"time"
)
@@ -157,6 +154,27 @@ func (g *GroupCacheRedis) GetGroupMembersHash(ctx context.Context, groupID strin
})
}
func (g *GroupCacheRedis) GetGroupMemberHash1(ctx context.Context, groupIDs []string) (map[string]*relationTb.GroupSimpleUserID, error) {
// todo
mapGroupUserIDs, err := g.groupMember.FindJoinUserID(ctx, groupIDs)
if err != nil {
return nil, err
}
res := make(map[string]*relationTb.GroupSimpleUserID)
for _, groupID := range groupIDs {
userIDs := mapGroupUserIDs[groupID]
users := &relationTb.GroupSimpleUserID{}
if len(userIDs) > 0 {
utils.Sort(userIDs, true)
bi := big.NewInt(0)
bi.SetString(utils.Md5(strings.Join(userIDs, ";"))[0:8], 16)
users.Hash = bi.Uint64()
}
res[groupID] = users
}
return res, nil
}
func (g *GroupCacheRedis) DelGroupMembersHash(ctx context.Context, groupID string) (err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID)
@@ -178,111 +196,104 @@ func (g *GroupCacheRedis) DelGroupMemberIDs(ctx context.Context, groupID string)
return g.rcClient.TagAsDeleted(g.getGroupMemberIDsKey(groupID))
}
// JoinedGroups
func (g *GroupCacheRedis) GetJoinedGroupIDs(ctx context.Context, userID string) (joinedGroupIDs []string, err error) {
getJoinedGroupIDList := func() (string, error) {
joinedGroupList, err := relation.GetJoinedGroupIDListByUserID(userID)
if err != nil {
return "", err
}
bytes, err := json.Marshal(joinedGroupList)
if err != nil {
return "", utils.Wrap(err, "")
}
return string(bytes), nil
}
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID, "joinedGroupIDs", joinedGroupIDs)
}()
joinedGroupIDListStr, err := g.rcClient.Fetch(g.getJoinedGroupsKey(userID), time.Second*30*60, getJoinedGroupIDList)
if err != nil {
return nil, err
}
err = json.Unmarshal([]byte(joinedGroupIDListStr), &joinedGroupIDs)
return joinedGroupIDs, utils.Wrap(err, "")
}
//// JoinedGroups
//func (g *GroupCacheRedis) GetJoinedGroupIDs(ctx context.Context, userID string) (joinedGroupIDs []string, err error) {
// getJoinedGroupIDList := func() (string, error) {
// joinedGroupList, err := relation.GetJoinedGroupIDListByUserID(userID)
// if err != nil {
// return "", err
// }
// bytes, err := json.Marshal(joinedGroupList)
// if err != nil {
// return "", utils.Wrap(err, "")
// }
// return string(bytes), nil
// }
// defer func() {
// tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID, "joinedGroupIDs", joinedGroupIDs)
// }()
// joinedGroupIDListStr, err := g.rcClient.Fetch(g.getJoinedGroupsKey(userID), time.Second*30*60, getJoinedGroupIDList)
// if err != nil {
// return nil, err
// }
// err = json.Unmarshal([]byte(joinedGroupIDListStr), &joinedGroupIDs)
// return joinedGroupIDs, utils.Wrap(err, "")
//}
func (g *GroupCacheRedis) DelJoinedGroupIDs(ctx context.Context, userID string) (err error) {
func (g *GroupCacheRedis) DelJoinedGroupID(ctx context.Context, userID string) (err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID)
}()
return g.rcClient.TagAsDeleted(g.getJoinedGroupsKey(userID))
}
// GetGroupMemberInfo
func (g *GroupCacheRedis) GetGroupMemberInfo(ctx context.Context, groupID, userID string) (groupMember *relation.GroupMember, err error) {
getGroupMemberInfo := func() (string, error) {
groupMemberInfo, err := relation.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID)
if err != nil {
return "", err
}
bytes, err := json.Marshal(groupMemberInfo)
if err != nil {
return "", utils.Wrap(err, "")
}
return string(bytes), nil
}
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "groupMember", *groupMember)
}()
groupMemberInfoStr, err := g.rcClient.Fetch(g.getGroupMemberInfoKey(groupID, userID), time.Second*30*60, getGroupMemberInfo)
if err != nil {
return nil, err
}
groupMember = &relation.GroupMember{}
err = json.Unmarshal([]byte(groupMemberInfoStr), groupMember)
return groupMember, utils.Wrap(err, "")
//func (g *GroupCacheRedis) DelJoinedGroupIDs(ctx context.Context, userIDs []string) (err error) {
// defer func() {
// tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID)
// }()
// for _, userID := range userIDs {
// if err := g.DelJoinedGroupID(ctx, userID); err != nil {
// return err
// }
// }
// return nil
//}
func (g *GroupCacheRedis) GetGroupMemberInfo(ctx context.Context, groupID, userID string) (groupMember *relationTb.GroupMemberModel, err error) {
return GetCache(ctx, g.rcClient, g.getGroupMemberInfoKey(groupID, userID), g.expireTime, func(ctx context.Context) (*relationTb.GroupMemberModel, error) {
return g.groupMember.Take(ctx, groupID, userID)
})
}
func (g *GroupCacheRedis) GetGroupMembersInfo(ctx context.Context, groupID, userIDs []string) (groupMember *relationTb.GroupMemberModel, err error) {
//func (g *GroupCacheRedis) GetGroupMembersInfo(ctx context.Context, groupID, userIDs []string) (groupMember *relationTb.GroupMemberModel, err error) {
//
// return nil, err
//}
return nil, err
}
func (g *GroupCacheRedis) GetGroupMembersInfo(ctx context.Context, count, offset int32, groupID string) (groupMembers []*relation.GroupMember, err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "count", count, "offset", offset, "groupID", groupID, "groupMember", groupMembers)
}()
groupMemberIDList, err := g.GetGroupMemberIDs(ctx, groupID)
if err != nil {
return nil, err
}
if count < 0 || offset < 0 {
return nil, nil
}
var groupMemberList []*relation.GroupMember
var start, stop int32
start = offset
stop = offset + count
l := int32(len(groupMemberIDList))
if start > stop {
return nil, nil
}
if start >= l {
return nil, nil
}
if count != 0 {
if stop >= l {
stop = l
}
groupMemberIDList = groupMemberIDList[start:stop]
} else {
if l < 1000 {
stop = l
} else {
stop = 1000
}
groupMemberIDList = groupMemberIDList[start:stop]
}
for _, userID := range groupMemberIDList {
groupMember, err := g.GetGroupMemberInfo(ctx, groupID, userID)
if err != nil {
return
}
groupMembers = append(groupMembers, groupMember)
}
return groupMemberList, nil
}
//func (g *GroupCacheRedis) GetGroupMembersInfo(ctx context.Context, count, offset int32, groupID string) (groupMembers []*relation.GroupMember, err error) {
// defer func() {
// tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "count", count, "offset", offset, "groupID", groupID, "groupMember", groupMembers)
// }()
// groupMemberIDList, err := g.GetGroupMemberIDs(ctx, groupID)
// if err != nil {
// return nil, err
// }
// if count < 0 || offset < 0 {
// return nil, nil
// }
// var groupMemberList []*relation.GroupMember
// var start, stop int32
// start = offset
// stop = offset + count
// l := int32(len(groupMemberIDList))
// if start > stop {
// return nil, nil
// }
// if start >= l {
// return nil, nil
// }
// if count != 0 {
// if stop >= l {
// stop = l
// }
// groupMemberIDList = groupMemberIDList[start:stop]
// } else {
// if l < 1000 {
// stop = l
// } else {
// stop = 1000
// }
// groupMemberIDList = groupMemberIDList[start:stop]
// }
// for _, userID := range groupMemberIDList {
// groupMember, err := g.GetGroupMemberInfo(ctx, groupID, userID)
// if err != nil {
// return
// }
// groupMembers = append(groupMembers, groupMember)
// }
// return groupMemberList, nil
//}
func (g *GroupCacheRedis) DelGroupMemberInfo(ctx context.Context, groupID, userID string) (err error) {
defer func() {
@@ -292,23 +303,23 @@ func (g *GroupCacheRedis) DelGroupMemberInfo(ctx context.Context, groupID, userI
}
// groupMemberNum
func (g *GroupCacheRedis) GetGroupMemberNum(ctx context.Context, groupID string) (num int, err error) {
getGroupMemberNum := func() (string, error) {
num, err := relation.GetGroupMemberNumByGroupID(groupID)
if err != nil {
return "", err
}
return strconv.Itoa(int(num)), nil
}
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "num", num)
}()
groupMember, err := g.rcClient.Fetch(g.getGroupMemberNumKey(groupID), time.Second*30*60, getGroupMemberNum)
if err != nil {
return 0, err
}
return strconv.Atoi(groupMember)
}
//func (g *GroupCacheRedis) GetGroupMemberNum(ctx context.Context, groupID string) (num int, err error) {
// getGroupMemberNum := func() (string, error) {
// num, err := relation.GetGroupMemberNumByGroupID(groupID)
// if err != nil {
// return "", err
// }
// return strconv.Itoa(int(num)), nil
// }
// defer func() {
// tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "num", num)
// }()
// groupMember, err := g.rcClient.Fetch(g.getGroupMemberNumKey(groupID), time.Second*30*60, getGroupMemberNum)
// if err != nil {
// return 0, err
// }
// return strconv.Atoi(groupMember)
//}
func (g *GroupCacheRedis) DelGroupMemberNum(ctx context.Context, groupID string) (err error) {
defer func() {
+23 -20
View File
@@ -88,14 +88,14 @@ type Cache interface {
// native redis operate
type RedisClient struct {
rdb redis.UniversalClient
}
//func NewRedis() *RedisClient {
// o := &RedisClient{}
// o.InitRedis()
// return o
//}
func (r *RedisClient) InitRedis() error {
func NewRedis() (*RedisClient, error) {
var rdb redis.UniversalClient
var err error
ctx := context.Background()
if config.Config.Redis.EnableCluster {
rdb = redis.NewClusterClient(&redis.ClusterOptions{
Addrs: config.Config.Redis.DBAddress,
@@ -103,11 +103,10 @@ func (r *RedisClient) InitRedis() error {
Password: config.Config.Redis.DBPassWord, // no password set
PoolSize: 50,
})
_, err = rdb.Ping(ctx).Result()
if err != nil {
fmt.Println("redis cluster failed address ", config.Config.Redis.DBAddress, config.Config.Redis.DBUserName, config.Config.Redis.DBPassWord)
return err
}
//if err := rdb.Ping(ctx).Err();err != nil {
// return nil, fmt.Errorf("redis ping %w", err)
//}
//return &RedisClient{rdb: rdb}, nil
} else {
rdb = redis.NewClient(&redis.Options{
Addr: config.Config.Redis.DBAddress[0],
@@ -116,18 +115,22 @@ func (r *RedisClient) InitRedis() error {
DB: 0, // use default DB
PoolSize: 100, // 连接池大小
})
_, err = rdb.Ping(ctx).Result()
if err != nil {
fmt.Println(" redis " + config.Config.Redis.DBAddress[0] + config.Config.Redis.DBUserName + config.Config.Redis.DBPassWord)
return err
}
//err := rdb.Ping(ctx).Err()
//if err != nil {
// panic(err.Error() + " redis " + config.Config.Redis.DBAddress[0] + config.Config.Redis.DBUserName + config.Config.Redis.DBPassWord)
//}
}
r.rdb = rdb
return nil
ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
defer cancel()
err := rdb.Ping(ctx).Err()
if err != nil {
return nil, fmt.Errorf("redis ping %w", err)
}
return &RedisClient{rdb: rdb}, nil
}
func (r *RedisClient) GetClient() redis.UniversalClient {
return r.rdb
type RedisClient struct {
rdb redis.UniversalClient
}
func NewRedisClient(rdb redis.UniversalClient) *RedisClient {
-1
View File
@@ -19,7 +19,6 @@ type AuthController struct {
}
func NewAuthController(rdb redis.UniversalClient, accessSecret string, accessExpire int64) *AuthController {
cache.NewRedisClient(rdb)
return &AuthController{database: cache.NewTokenRedis(cache.NewRedisClient(rdb), accessSecret, accessExpire)}
}
+214 -25
View File
@@ -1,32 +1,42 @@
package controller
import (
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db/cache"
"Open_IM/pkg/common/db/relation"
relationTb "Open_IM/pkg/common/db/table/relation"
"Open_IM/pkg/utils"
"context"
"encoding/json"
"gorm.io/gorm"
)
type ConversationInterface interface {
//GetUserIDExistConversation 获取拥有该会话的的用户ID列表
GetUserIDExistConversation(ctx context.Context, userIDList []string, conversationID string) ([]string, error)
//UpdateUserConversationFiled 更新用户该会话的属性信息
UpdateUsersConversationFiled(ctx context.Context, UserIDList []string, conversationID string, args map[string]interface{}) error
UpdateUsersConversationFiled(ctx context.Context, userIDList []string, conversationID string, args map[string]interface{}) error
//CreateConversation 创建一批新的会话
CreateConversation(ctx context.Context, conversations []*relationTb.ConversationModel) error
//SyncPeerUserPrivateConversation 同步对端私聊会话内部保证事务操作
SyncPeerUserPrivateConversationTx(ctx context.Context, conversation *relationTb.ConversationModel) error
//FindConversations 根据会话ID获取某个用户的多个会话
FindConversations(ctx context.Context, ownerUserID string, conversationID []string) ([]*relationTb.ConversationModel, error)
FindConversations(ctx context.Context, ownerUserID string, conversationIDs []string) ([]*relationTb.ConversationModel, error)
//GetUserAllConversation 获取一个用户在服务器上所有的会话
GetUserAllConversation(ctx context.Context, ownerUserID string) ([]*relationTb.ConversationModel, error)
//SetUserConversations 设置用户多个会话属性,如果会话不存在则创建,否则更新,内部保证原子性
SetUserConversations(ctx context.Context, ownerUserID string, conversations []*relationTb.ConversationModel) error
//SetUsersConversationFiledTx 设置多个用户会话关于某个字段的更新操作,如果会话不存在则创建,否则更新,内部保证事务操作
SetUsersConversationFiledTx(ctx context.Context, userIDList []string, conversation *relationTb.ConversationModel, filedMap map[string]interface{}) error
}
type ConversationController struct {
database ConversationDataBaseInterface
}
func (c *ConversationController) SetUsersConversationFiledTx(ctx context.Context, userIDList []string, conversation *relationTb.ConversationModel, filedMap map[string]interface{}) error {
return c.database.SetUsersConversationFiledTx(ctx, userIDList, conversation, filedMap)
}
func NewConversationController(database ConversationDataBaseInterface) *ConversationController {
return &ConversationController{database: database}
}
@@ -36,26 +46,26 @@ func (c *ConversationController) GetUserIDExistConversation(ctx context.Context,
}
func (c ConversationController) UpdateUsersConversationFiled(ctx context.Context, UserIDList []string, conversationID string, args map[string]interface{}) error {
panic("implement me")
return c.database.UpdateUsersConversationFiled(ctx, UserIDList, conversationID, args)
}
func (c ConversationController) CreateConversation(ctx context.Context, conversations []*relationTb.ConversationModel) error {
panic("implement me")
return c.database.CreateConversation(ctx, conversations)
}
func (c ConversationController) SyncPeerUserPrivateConversationTx(ctx context.Context, conversation *relationTb.ConversationModel) error {
panic("implement me")
return c.database.SyncPeerUserPrivateConversationTx(ctx, conversation)
}
func (c ConversationController) FindConversations(ctx context.Context, ownerUserID string, conversationID []string) ([]*relationTb.ConversationModel, error) {
panic("implement me")
func (c ConversationController) FindConversations(ctx context.Context, ownerUserID string, conversationIDs []string) ([]*relationTb.ConversationModel, error) {
return c.database.FindConversations(ctx, ownerUserID, conversationIDs)
}
func (c ConversationController) GetUserAllConversation(ctx context.Context, ownerUserID string) ([]*relationTb.ConversationModel, error) {
panic("implement me")
return c.database.GetUserAllConversation(ctx, ownerUserID)
}
func (c ConversationController) SetUserConversations(ctx context.Context, ownerUserID string, conversations []*relationTb.ConversationModel) error {
panic("implement me")
return c.database.SetUserConversations(ctx, ownerUserID, conversations)
}
var _ ConversationInterface = (*ConversationController)(nil)
@@ -70,15 +80,65 @@ type ConversationDataBaseInterface interface {
//SyncPeerUserPrivateConversation 同步对端私聊会话内部保证事务操作
SyncPeerUserPrivateConversationTx(ctx context.Context, conversation *relationTb.ConversationModel) error
//FindConversations 根据会话ID获取某个用户的多个会话
FindConversations(ctx context.Context, ownerUserID string, conversationID []string) ([]*relationTb.ConversationModel, error)
FindConversations(ctx context.Context, ownerUserID string, conversationIDs []string) ([]*relationTb.ConversationModel, error)
//GetUserAllConversation 获取一个用户在服务器上所有的会话
GetUserAllConversation(ctx context.Context, ownerUserID string) ([]*relationTb.ConversationModel, error)
//SetUserConversations 设置用户多个会话属性,如果会话不存在则创建,否则更新,内部保证原子性
SetUserConversations(ctx context.Context, ownerUserID string, conversations []*relationTb.ConversationModel) error
//SetUsersConversationFiledTx 设置多个用户会话关于某个字段的更新操作,如果会话不存在则创建,否则更新,内部保证事务操作
SetUsersConversationFiledTx(ctx context.Context, userIDList []string, conversation *relationTb.ConversationModel, filedMap map[string]interface{}) error
}
var _ ConversationDataBaseInterface = (*ConversationDataBase)(nil)
type ConversationDataBase struct {
db relation.Conversation
cache cache.ConversationCache
conversationDB relation.Conversation
cache cache.ConversationCache
db *gorm.DB
}
func (c ConversationDataBase) SetUsersConversationFiledTx(ctx context.Context, userIDList []string, conversation *relationTb.ConversationModel, filedMap map[string]interface{}) error {
return c.db.Transaction(func(tx *gorm.DB) error {
haveUserID, err := c.conversationDB.FindUserID(ctx, userIDList, conversation.ConversationID, tx)
if err != nil {
return err
}
if len(haveUserID) > 0 {
err = c.conversationDB.UpdateByMap(ctx, haveUserID, conversation.ConversationID, filedMap, tx)
if err != nil {
return err
}
}
NotUserID := utils.DifferenceString(haveUserID, userIDList)
var cList []*relationTb.ConversationModel
for _, v := range NotUserID {
temp := new(relationTb.ConversationModel)
if err := utils.CopyStructFields(temp, conversation); err != nil {
return err
}
temp.OwnerUserID = v
cList = append(cList, temp)
}
err = c.conversationDB.Create(ctx, cList)
if err != nil {
return err
}
if len(NotUserID) > 0 {
err = c.cache.DelUsersConversationIDs(ctx, NotUserID)
if err != nil {
return err
}
}
err = c.cache.DelUsersConversation(ctx, haveUserID, conversation.ConversationID)
if err != nil {
return err
}
return nil
})
}
func NewConversationDataBase(db relation.Conversation, cache cache.ConversationCache) *ConversationDataBase {
return &ConversationDataBase{conversationDB: db, cache: cache}
}
func (c ConversationDataBase) GetUserIDExistConversation(ctx context.Context, userIDList []string, conversationID string) ([]string, error) {
@@ -94,26 +154,155 @@ func (c ConversationDataBase) CreateConversation(ctx context.Context, conversati
}
func (c ConversationDataBase) SyncPeerUserPrivateConversationTx(ctx context.Context, conversation *relationTb.ConversationModel) error {
panic("implement me")
return c.db.Transaction(func(tx *gorm.DB) error {
userIDList := []string{conversation.OwnerUserID, conversation.UserID}
haveUserID, err := c.conversationDB.FindUserID(ctx, userIDList, conversation.ConversationID, tx)
if err != nil {
return err
}
filedMap := map[string]interface{}{"is_private_chat": conversation.IsPrivateChat}
if len(haveUserID) > 0 {
err = c.conversationDB.UpdateByMap(ctx, haveUserID, conversation.ConversationID, filedMap, tx)
if err != nil {
return err
}
}
NotUserID := utils.DifferenceString(haveUserID, userIDList)
var cList []*relationTb.ConversationModel
for _, v := range NotUserID {
temp := new(relationTb.ConversationModel)
if v == conversation.UserID {
temp.OwnerUserID = conversation.UserID
temp.ConversationID = utils.GetConversationIDBySessionType(conversation.OwnerUserID, constant.SingleChatType)
temp.ConversationType = constant.SingleChatType
temp.UserID = conversation.OwnerUserID
temp.IsPrivateChat = conversation.IsPrivateChat
} else {
if err := utils.CopyStructFields(temp, conversation); err != nil {
return err
}
temp.OwnerUserID = v
}
cList = append(cList, temp)
}
if len(NotUserID) > 0 {
err = c.conversationDB.Create(ctx, cList)
if err != nil {
return err
}
}
err = c.cache.DelUsersConversationIDs(ctx, NotUserID)
if err != nil {
return err
}
err = c.cache.DelUsersConversation(ctx, haveUserID, conversation.ConversationID)
if err != nil {
return err
}
return nil
})
}
func (c ConversationDataBase) FindConversations(ctx context.Context, ownerUserID string, conversationID []string) ([]*relationTb.ConversationModel, error) {
panic("implement me")
func (c ConversationDataBase) FindConversations(ctx context.Context, ownerUserID string, conversationIDs []string) ([]*relationTb.ConversationModel, error) {
getConversation := func() (string, error) {
conversationList, err := c.conversationDB.Find(ctx, ownerUserID, conversationIDs)
if err != nil {
return "", utils.Wrap(err, "get failed")
}
bytes, err := json.Marshal(conversationList)
if err != nil {
return "", utils.Wrap(err, "Marshal failed")
}
return string(bytes), nil
}
return c.cache.GetConversations(ctx, ownerUserID, conversationIDs, getConversation)
}
func (c ConversationDataBase) GetConversation(ctx context.Context, ownerUserID string, conversationID string) (*relationTb.ConversationModel, error) {
getConversation := func() (string, error) {
conversationList, err := c.conversationDB.Take(ctx, ownerUserID, conversationID)
if err != nil {
return "", utils.Wrap(err, "get failed")
}
bytes, err := json.Marshal(conversationList)
if err != nil {
return "", utils.Wrap(err, "Marshal failed")
}
return string(bytes), nil
}
return c.cache.GetConversation(ctx, ownerUserID, conversationID, getConversation)
}
func (c ConversationDataBase) GetUserAllConversation(ctx context.Context, ownerUserID string) ([]*relationTb.ConversationModel, error) {
panic("implement me")
getConversationIDList := func() (string, error) {
conversationIDList, err := c.conversationDB.FindUserIDAllConversationID(ctx, ownerUserID)
if err != nil {
return "", utils.Wrap(err, "getConversationIDList failed")
}
bytes, err := json.Marshal(conversationIDList)
if err != nil {
return "", utils.Wrap(err, "")
}
return string(bytes), nil
}
conversationIDList, err := c.cache.GetUserConversationIDs(ctx, ownerUserID, getConversationIDList)
if err != nil {
return nil, err
}
var conversations []*relationTb.ConversationModel
for _, conversationID := range conversationIDList {
conversation, tErr := c.GetConversation(ctx, ownerUserID, conversationID)
if tErr != nil {
return nil, utils.Wrap(tErr, "GetConversation failed")
}
conversations = append(conversations, conversation)
}
return conversations, nil
}
func (c ConversationDataBase) SetUserConversations(ctx context.Context, ownerUserID string, conversations []*relationTb.ConversationModel) error {
panic("implement me")
}
return c.db.Transaction(func(tx *gorm.DB) error {
var conversationIDList []string
for _, conversation := range conversations {
conversationIDList = append(conversationIDList, conversation.ConversationID)
}
haveConversations, err := c.conversationDB.Find(ctx, ownerUserID, conversationIDList, tx)
if err != nil {
return err
}
if len(haveConversations) > 0 {
err = c.conversationDB.Update(ctx, conversations, tx)
if err != nil {
return err
}
}
var haveConversationID []string
for _, conversation := range haveConversations {
haveConversationID = append(haveConversationID, conversation.ConversationID)
}
func NewConversationDataBase(db relation.Conversation, cache cache.ConversationCache) *ConversationDataBase {
return &ConversationDataBase{db: db, cache: cache}
NotConversationID := utils.DifferenceString(haveConversationID, conversationIDList)
var NotConversations []*relationTb.ConversationModel
for _, conversation := range conversations {
if !utils.IsContain(conversation.ConversationID, haveConversationID) {
NotConversations = append(NotConversations, conversation)
}
}
if len(NotConversations) > 0 {
err = c.conversationDB.Create(ctx, NotConversations)
if err != nil {
return err
}
}
err = c.cache.DelUsersConversationIDs(ctx, NotConversationID)
if err != nil {
return err
}
err = c.cache.DelUserConversations(ctx, ownerUserID, haveConversationID)
if err != nil {
return err
}
return nil
})
}
//func NewConversationController(db *gorm.DB, rdb redis.UniversalClient) ConversationInterface {
// groupController := &ConversationController{database: newGroupDatabase(db, rdb, mgoClient)}
// return groupController
//}
+73 -39
View File
@@ -15,8 +15,6 @@ import (
"github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/mongo"
"gorm.io/gorm"
"math/big"
"strings"
)
//type GroupInterface GroupDataBaseInterface
@@ -57,8 +55,8 @@ type GroupInterface interface {
var _ GroupInterface = (*GroupController)(nil)
func NewGroupInterface(db *gorm.DB, rdb redis.UniversalClient, mgoClient *mongo.Client) GroupInterface {
return &GroupController{database: NewGroupDatabase(db, rdb, mgoClient)}
func NewGroupInterface(database GroupDataBaseInterface) GroupInterface {
return &GroupController{database: database}
}
type GroupController struct {
@@ -74,7 +72,7 @@ func (g *GroupController) CreateGroup(ctx context.Context, groups []*relationTb.
}
func (g *GroupController) TakeGroup(ctx context.Context, groupID string) (group *relationTb.GroupModel, err error) {
return g.TakeGroup(ctx, groupID)
return g.database.TakeGroup(ctx, groupID)
}
func (g *GroupController) FindGroup(ctx context.Context, groupIDs []string) (groups []*relationTb.GroupModel, err error) {
@@ -177,6 +175,53 @@ func (g *GroupController) CreateSuperGroupMember(ctx context.Context, groupID st
return g.database.CreateSuperGroupMember(ctx, groupID, userIDs)
}
type Group interface {
CreateGroup(ctx context.Context, groups []*relationTb.GroupModel, groupMembers []*relationTb.GroupMemberModel) error
TakeGroup(ctx context.Context, groupID string) (group *relationTb.GroupModel, err error)
FindGroup(ctx context.Context, groupIDs []string) (groups []*relationTb.GroupModel, err error)
SearchGroup(ctx context.Context, keyword string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupModel, error)
UpdateGroup(ctx context.Context, groupID string, data map[string]any) error
DismissGroup(ctx context.Context, groupID string) error // 解散群,并删除群成员
}
type GroupMember interface {
TakeGroupMember(ctx context.Context, groupID string, userID string) (groupMember *relationTb.GroupMemberModel, err error)
TakeGroupOwner(ctx context.Context, groupID string) (*relationTb.GroupMemberModel, error)
FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relationTb.GroupMemberModel, error)
FindGroupMemberUserID(ctx context.Context, groupID string) ([]string, error)
PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error)
SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error)
HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relationTb.GroupMemberModel) error
DeleteGroupMember(ctx context.Context, groupID string, userIDs []string) error
MapGroupMemberUserID(ctx context.Context, groupIDs []string) (map[string]*relationTb.GroupSimpleUserID, error)
MapGroupMemberNum(ctx context.Context, groupIDs []string) (map[string]uint32, error)
TransferGroupOwner(ctx context.Context, groupID string, oldOwnerUserID, newOwnerUserID string, roleLevel int32) error // 转让群
UpdateGroupMember(ctx context.Context, groupID string, userID string, data map[string]any) error
UpdateGroupMembers(ctx context.Context, data []*relationTb.BatchUpdateGroupMember) error
}
type GroupRequest interface {
CreateGroupRequest(ctx context.Context, requests []*relationTb.GroupRequestModel) error
TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relationTb.GroupRequestModel, error)
PageGroupRequestUser(ctx context.Context, userID string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupRequestModel, error)
}
type SuperGroup interface {
FindSuperGroup(ctx context.Context, groupIDs []string) ([]*unrelationTb.SuperGroupModel, error)
FindJoinSuperGroup(ctx context.Context, userID string) (*unrelationTb.UserToSuperGroupModel, error)
CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error
DeleteSuperGroup(ctx context.Context, groupID string) error
DeleteSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error
CreateSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error
}
type GroupDataBase1 interface {
Group
GroupMember
GroupRequest
SuperGroup
}
type GroupDataBaseInterface interface {
CreateGroup(ctx context.Context, groups []*relationTb.GroupModel, groupMembers []*relationTb.GroupMemberModel) error
TakeGroup(ctx context.Context, groupID string) (group *relationTb.GroupModel, err error)
@@ -248,7 +293,7 @@ type GroupDataBase struct {
func (g *GroupDataBase) delGroupMemberCache(ctx context.Context, groupID string, userIDs []string) error {
for _, userID := range userIDs {
if err := g.cache.DelJoinedGroupIDs(ctx, userID); err != nil {
if err := g.cache.DelJoinedGroupID(ctx, userID); err != nil {
return err
}
if err := g.cache.DelJoinedSuperGroupIDs(ctx, userID); err != nil {
@@ -272,25 +317,31 @@ func (g *GroupDataBase) FindGroupMemberUserID(ctx context.Context, groupID strin
}
func (g *GroupDataBase) CreateGroup(ctx context.Context, groups []*relationTb.GroupModel, groupMembers []*relationTb.GroupMemberModel) error {
if len(groups) > 0 && len(groupMembers) > 0 {
return g.db.Transaction(func(tx *gorm.DB) error {
return g.db.Transaction(func(tx *gorm.DB) error {
if len(groups) > 0 {
if err := g.groupDB.Create(ctx, groups, tx); err != nil {
return err
}
return g.groupMemberDB.Create(ctx, groupMembers, tx)
})
}
if len(groups) > 0 {
return g.groupDB.Create(ctx, groups)
}
if len(groupMembers) > 0 {
return g.groupMemberDB.Create(ctx, groupMembers)
}
return nil
}
if len(groupMembers) > 0 {
if err := g.groupMemberDB.Create(ctx, groupMembers, tx); err != nil {
return err
}
//if err := g.cache.DelJoinedGroupIDs(ctx, utils.Slice(groupMembers, func(e *relationTb.GroupMemberModel) string {
// return e.UserID
//})); err != nil {
// return err
//}
}
return nil
})
}
func (g *GroupDataBase) TakeGroup(ctx context.Context, groupID string) (group *relationTb.GroupModel, err error) {
return g.cache.GetGroupInfo(ctx, groupID)
//return g.cache.GetGroupInfo(ctx, groupID)
return cache.GetCache(ctx, g.rcClient, g.getGroupInfoKey(groupID), g.expireTime, func(ctx context.Context) (*relationTb.GroupModel, error) {
return g.group.Take(ctx, groupID)
})
}
func (g *GroupDataBase) FindGroup(ctx context.Context, groupIDs []string) (groups []*relationTb.GroupModel, err error) {
@@ -337,12 +388,11 @@ func (g *GroupDataBase) TakeGroupMember(ctx context.Context, groupID string, use
}
func (g *GroupDataBase) TakeGroupOwner(ctx context.Context, groupID string) (*relationTb.GroupMemberModel, error) {
return g.groupMemberDB.TakeOwner(ctx, groupID)
return g.groupMemberDB.TakeOwner(ctx, groupID) // todo cache group owner
}
func (g *GroupDataBase) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relationTb.GroupMemberModel, error) {
//g.cache.GetGroupMembersInfo()
return g.groupMemberDB.Find(ctx, groupIDs, userIDs, roleLevels)
return g.groupMemberDB.Find(ctx, groupIDs, userIDs, roleLevels) // todo cache group find
}
func (g *GroupDataBase) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) {
@@ -383,23 +433,7 @@ func (g *GroupDataBase) DeleteGroupMember(ctx context.Context, groupID string, u
}
func (g *GroupDataBase) MapGroupMemberUserID(ctx context.Context, groupIDs []string) (map[string]*relationTb.GroupSimpleUserID, error) {
mapGroupUserIDs, err := g.groupMemberDB.FindJoinUserID(ctx, groupIDs)
if err != nil {
return nil, err
}
res := make(map[string]*relationTb.GroupSimpleUserID)
for _, groupID := range groupIDs {
userIDs := mapGroupUserIDs[groupID]
users := &relationTb.GroupSimpleUserID{}
if len(userIDs) > 0 {
utils.Sort(userIDs, true)
bi := big.NewInt(0)
bi.SetString(utils.Md5(strings.Join(userIDs, ";"))[0:8], 16)
users.Hash = bi.Uint64()
}
res[groupID] = users
}
return res, nil
return g.cache.GetGroupMemberHash1(ctx, groupIDs)
}
func (g *GroupDataBase) MapGroupMemberNum(ctx context.Context, groupIDs []string) (map[string]uint32, error) {
+2 -2
View File
@@ -24,8 +24,8 @@ type GroupMemberIDsHash struct {
userIDs []string
}
func NewGroupMemberIDsLocalCache(client discoveryRegistry.SvcDiscoveryRegistry) GroupLocalCache {
return GroupLocalCache{
func NewGroupMemberIDsLocalCache(client discoveryRegistry.SvcDiscoveryRegistry) *GroupLocalCache {
return &GroupLocalCache{
cache: make(map[string]GroupMemberIDsHash, 0),
client: client,
}
+49 -22
View File
@@ -1,7 +1,7 @@
package relation
import (
"Open_IM/pkg/common/db/table"
"Open_IM/pkg/common/db/table/relation"
"Open_IM/pkg/common/tracelog"
"Open_IM/pkg/utils"
"context"
@@ -10,12 +10,15 @@ import (
type Conversation interface {
TableName() string
Create(ctx context.Context, conversations []*table.ConversationModel) (err error)
Create(ctx context.Context, conversations []*relation.ConversationModel, tx ...any) (err error)
Delete(ctx context.Context, groupIDs []string) (err error)
UpdateByMap(ctx context.Context, groupID string, args map[string]interface{}) (err error)
Update(ctx context.Context, groups []*table.ConversationModel) (err error)
Find(ctx context.Context, groupIDs []string) (groups []*table.ConversationModel, err error)
Take(ctx context.Context, groupID string) (group *table.ConversationModel, err error)
UpdateByMap(ctx context.Context, userIDList []string, conversationID string, args map[string]interface{}, tx ...any) (err error)
Update(ctx context.Context, conversations []*relation.ConversationModel, tx ...any) (err error)
Find(ctx context.Context, ownerUserID string, conversationIDs []string, tx ...any) (conversations []*relation.ConversationModel, err error)
FindUserID(ctx context.Context, userIDList []string, conversationID string, tx ...any) ([]string, error)
FindUserIDAllConversationID(ctx context.Context, userID string, tx ...any) ([]string, error)
Take(ctx context.Context, userID, conversationID string, tx ...any) (conversation *relation.ConversationModel, err error)
FindConversationID(ctx context.Context, userID string, conversationIDList []string, tx ...any) (existConversationID []string, err error)
}
type ConversationGorm struct {
DB *gorm.DB
@@ -29,45 +32,69 @@ func NewConversationGorm(DB *gorm.DB) Conversation {
return &ConversationGorm{DB: DB}
}
func (c *ConversationGorm) Create(ctx context.Context, conversations []*table.ConversationModel) (err error) {
func (c *ConversationGorm) Create(ctx context.Context, conversations []*relation.ConversationModel, tx ...any) (err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "conversations", conversations)
}()
return utils.Wrap(getDBConn(g.DB, tx).Create(&conversations).Error, "")
return utils.Wrap(getDBConn(c.DB, tx).Create(&conversations).Error, "")
}
func (c *ConversationGorm) Delete(ctx context.Context, groupIDs []string) (err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupIDs", groupIDs)
}()
return utils.Wrap(getDBConn(g.DB, tx).Where("group_id in (?)", groupIDs).Delete(&table.ConversationModel{}).Error, "")
return utils.Wrap(getDBConn(g.DB, tx).Where("group_id in (?)", groupIDs).Delete(&relation.ConversationModel{}).Error, "")
}
func (c *ConversationGorm) UpdateByMap(ctx context.Context, groupID string, args map[string]interface{}) (err error) {
func (c *ConversationGorm) UpdateByMap(ctx context.Context, userIDList []string, conversationID string, args map[string]interface{}, tx ...any) (err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "args", args)
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userIDList", userIDList, "conversationID", conversationID)
}()
return utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ?", groupID).Model(g).Updates(args).Error, "")
return utils.Wrap(getDBConn(c.DB, tx).Model(&relation.ConversationModel{}).Where("owner_user_id IN (?) and conversation_id=?", userIDList, conversationID).Updates(args).Error, "")
}
func (c *ConversationGorm) Update(ctx context.Context, groups []*table.ConversationModel) (err error) {
func (c *ConversationGorm) Update(ctx context.Context, conversations []*relation.ConversationModel, tx ...any) (err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groups", groups)
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "conversations", conversations)
}()
return utils.Wrap(getDBConn(g.DB, tx).Updates(&groups).Error, "")
return utils.Wrap(getDBConn(c.DB, tx).Updates(&conversations).Error, "")
}
func (c *ConversationGorm) Find(ctx context.Context, groupIDs []string) (groups []*table.ConversationModel, err error) {
func (c *ConversationGorm) Find(ctx context.Context, ownerUserID string, conversationIDs []string, tx ...any) (conversations []*relation.ConversationModel, err error) {
var newConversations []relation.ConversationModel
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupIDs", groupIDs, "groups", groups)
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "ownerUserID", ownerUserID, "groups", conversations)
}()
return groups, utils.Wrap(getDBConn(g.DB, tx).Where("group_id in (?)", groupIDs).Find(&groups).Error, "")
err = utils.Wrap(getDBConn(c.DB, tx).Where("owner_user_id=? and conversation_id IN (?)", ownerUserID, conversationIDs).Find(&newConversations).Error, "")
for _, v := range newConversations {
v1 := v
conversations = append(conversations, &v1)
}
return conversations, err
}
func (c *ConversationGorm) Take(ctx context.Context, groupID string) (group *table.ConversationModel, err error) {
group = &Group{}
func (c *ConversationGorm) Take(ctx context.Context, userID, conversationID string, tx ...any) (conversation *relation.ConversationModel, err error) {
cc := &relation.ConversationModel{}
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "group", *group)
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID, "conversation", *conversation)
}()
return group, utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ?", groupID).Take(group).Error, "")
return cc, utils.Wrap(getDBConn(c.DB, tx).Where("conversation_id = ? And owner_user_id = ?", conversationID, userID).Take(cc).Error, "")
}
func (c *ConversationGorm) FindUserID(ctx context.Context, userIDList []string, conversationID string, tx ...any) (existUserID []string, err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userIDList, "existUserID", existUserID)
}()
return existUserID, utils.Wrap(getDBConn(c.DB, tx).Where(" owner_user_id IN (?) and conversation_id=?", userIDList, conversationID).Pluck("owner_user_id", &existUserID).Error, "")
}
func (c *ConversationGorm) FindConversationID(ctx context.Context, userID string, conversationIDList []string, tx ...any) (existConversationID []string, err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID, "existConversationIDList", existConversationID)
}()
return existConversationID, utils.Wrap(getDBConn(c.DB, tx).Where(" conversation_id IN (?) and owner_user_id=?", conversationIDList, userID).Pluck("conversation_id", &existConversationID).Error, "")
}
func (c *ConversationGorm) FindUserIDAllConversationID(ctx context.Context, userID string, tx ...any) (conversationIDList []string, err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID, "conversationIDList", conversationIDList)
}()
return conversationIDList, utils.Wrap(getDBConn(c.DB, tx).Model(&relation.ConversationModel{}).Where("owner_user_id=?", userID).Pluck("conversation_id", &conversationIDList).Error, "")
}
+1 -1
View File
@@ -130,5 +130,5 @@ func (g *GroupMemberGorm) FindMemberUserID(ctx context.Context, groupID string,
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userIDs", userIDs)
}()
return userIDs, utils.Wrap(getDBConn(g.DB, tx).Model(&relation.GroupMemberModel{}).Where("group_id = ?", groupID).Pluck("user_id", &userIDs), "")
return userIDs, utils.Wrap(getDBConn(g.DB, tx).Model(&relation.GroupMemberModel{}).Where("group_id = ?", groupID).Pluck("user_id", &userIDs).Error, "")
}
+148
View File
@@ -0,0 +1,148 @@
package relation
import (
"Open_IM/pkg/common/config"
"fmt"
"time"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
func NewGormDB() (*gorm.DB, error) {
dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local",
config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], "mysql")
db, err := gorm.Open(mysql.Open(dsn), nil)
if err != nil {
time.Sleep(time.Duration(30) * time.Second)
db, err = gorm.Open(mysql.Open(dsn), nil)
if err != nil {
panic(err.Error() + " open failed " + dsn)
}
}
sqlDB, err := db.DB()
if err != nil {
return nil, err
}
defer sqlDB.Close()
sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName)
err = db.Exec(sql).Error
if err != nil {
return nil, fmt.Errorf("init db %w", err)
}
dsn = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local",
config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName)
newLogger := logger.New(
Writer{},
logger.Config{
SlowThreshold: time.Duration(config.Config.Mysql.SlowThreshold) * time.Millisecond, // Slow SQL threshold
LogLevel: logger.LogLevel(config.Config.Mysql.LogLevel), // Log level
IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger
Colorful: true, // Disable color
},
)
db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: newLogger,
})
if err != nil {
return nil, err
}
sqlDB, err = db.DB()
if err != nil {
return nil, err
}
sqlDB.SetConnMaxLifetime(time.Second * time.Duration(config.Config.Mysql.DBMaxLifeTime))
sqlDB.SetMaxOpenConns(config.Config.Mysql.DBMaxOpenConns)
sqlDB.SetMaxIdleConns(config.Config.Mysql.DBMaxIdleConns)
return db, nil
}
type Mysql struct {
gormConn *gorm.DB
}
func (m *Mysql) GormConn() *gorm.DB {
return m.gormConn
}
//func (m *Mysql) SetGormConn(gormConn *gorm.DB) {
// m.gormConn = gormConn
//}
//
//func (m *Mysql) InitConn() *Mysql {
// dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local",
// config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], "mysql")
// var db *gorm.DB
// db, err := gorm.Open(mysql.Open(dsn), nil)
// if err != nil {
// time.Sleep(time.Duration(30) * time.Second)
// db, err = gorm.Open(mysql.Open(dsn), nil)
// if err != nil {
// panic(err.Error() + " open failed " + dsn)
// }
// }
// sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName)
// err = db.Exec(sql).Error
// if err != nil {
// panic(err.Error() + " Exec failed:" + sql)
// }
// dsn = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local",
// config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName)
// newLogger := logger.New(
// Writer{},
// logger.Config{
// SlowThreshold: time.Duration(config.Config.Mysql.SlowThreshold) * time.Millisecond, // Slow SQL threshold
// LogLevel: logger.LogLevel(config.Config.Mysql.LogLevel), // Log level
// IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger
// Colorful: true, // Disable color
// },
// )
// db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
// Logger: newLogger,
// })
// if err != nil {
// panic(err.Error() + " Open failed " + dsn)
// }
// sqlDB, err := db.DB()
// if err != nil {
// panic(err.Error() + " DB.DB() failed ")
// }
// sqlDB.SetConnMaxLifetime(time.Second * time.Duration(config.Config.Mysql.DBMaxLifeTime))
// sqlDB.SetMaxOpenConns(config.Config.Mysql.DBMaxOpenConns)
// sqlDB.SetMaxIdleConns(config.Config.Mysql.DBMaxIdleConns)
// if db == nil {
// panic("db is nil")
// }
// m.SetGormConn(db)
// return m
//}
//models := []interface{}{&Friend{}, &FriendRequest{}, &Group{}, &GroupMember{}, &GroupRequest{},
// &User{}, &Black{}, &ChatLog{}, &Conversation{}, &AppVersion{}}
//func (m *Mysql) AutoMigrateModel(model interface{}) error {
// err := m.gormConn.AutoMigrate(model)
// if err != nil {
// return err
// }
// m.gormConn.Set("gorm:table_options", "CHARSET=utf8")
// m.gormConn.Set("gorm:table_options", "collation=utf8_unicode_ci")
// _ = m.gormConn.Migrator().CreateTable(model)
// return nil
//}
type Writer struct{}
func (w Writer) Printf(format string, args ...interface{}) {
fmt.Printf(format, args...)
}
func getDBConn(db *gorm.DB, tx []any) *gorm.DB {
if len(tx) > 0 {
if txDB, ok := tx[0].(*gorm.DB); ok {
return txDB
}
}
return db
}
+41
View File
@@ -13,6 +13,47 @@ import (
"time"
)
//func NewMongo() *Mongo {
// mgo := &Mongo{}
// mgo.InitMongo()
// return mgo
//}
func NewMongo() (*Mongo, error) {
uri := "mongodb://sample.host:27017/?maxPoolSize=20&w=majority"
if config.Config.Mongo.DBUri != "" {
// example: mongodb://$user:$password@mongo1.mongo:27017,mongo2.mongo:27017,mongo3.mongo:27017/$DBDatabase/?replicaSet=rs0&readPreference=secondary&authSource=admin&maxPoolSize=$DBMaxPoolSize
uri = config.Config.Mongo.DBUri
} else {
//mongodb://mongodb1.example.com:27317,mongodb2.example.com:27017/?replicaSet=mySet&authSource=authDB
mongodbHosts := ""
for i, v := range config.Config.Mongo.DBAddress {
if i == len(config.Config.Mongo.DBAddress)-1 {
mongodbHosts += v
} else {
mongodbHosts += v + ","
}
}
if config.Config.Mongo.DBPassword != "" && config.Config.Mongo.DBUserName != "" {
uri = fmt.Sprintf("mongodb://%s:%s@%s/%s?maxPoolSize=%d&authSource=admin",
config.Config.Mongo.DBUserName, config.Config.Mongo.DBPassword, mongodbHosts,
config.Config.Mongo.DBDatabase, config.Config.Mongo.DBMaxPoolSize)
} else {
uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d&authSource=admin",
mongodbHosts, config.Config.Mongo.DBDatabase,
config.Config.Mongo.DBMaxPoolSize)
}
}
fmt.Println("mongo:", uri)
ctx, cancel := context.WithTimeout(context.Background(), time.Second*60)
defer cancel()
mongoClient, err := mongo.Connect(ctx, options.Client().ApplyURI(uri))
if err != nil {
return nil, err
}
return &Mongo{db: mongoClient}, nil
}
type Mongo struct {
db *mongo.Client
}
+6 -2
View File
@@ -7,7 +7,7 @@
package http
import (
cbApi "Open_IM/pkg/callbackstruct"
cbapi "Open_IM/pkg/callbackstruct"
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"bytes"
@@ -59,7 +59,7 @@ func Post(url string, data interface{}, timeOutSecond int) (content []byte, err
return result, nil
}
func CallBackPostReturn(url, callbackCommand string, input interface{}, output cbApi.CallbackResp, callbackConfig config.CallBackConfig) error {
func callBackPostReturn(url, callbackCommand string, input interface{}, output cbapi.CallbackResp, callbackConfig config.CallBackConfig) error {
v := urlLib.Values{}
v.Set("callbackCommand", callbackCommand)
url = url + "?" + v.Encode()
@@ -78,3 +78,7 @@ func CallBackPostReturn(url, callbackCommand string, input interface{}, output c
}
return output.Parse()
}
func CallBackPostReturn(url string, req cbapi.CallbackReq, resp cbapi.CallbackResp, callbackConfig config.CallBackConfig) error {
return callBackPostReturn(url, req.GetCallbackCommand(), req, resp, callbackConfig)
}
+3
View File
@@ -87,3 +87,6 @@ func CheckAdmin(ctx context.Context) error {
func ParseRedisInterfaceToken(redisToken interface{}) (*Claims, error) {
return GetClaimFromToken(string(redisToken.([]uint8)))
}
func IsManagerUserID(opUserID string) bool {
return utils.IsContain(opUserID, config.Config.Manager.AppManagerUid)
}
+299 -176
View File
@@ -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_b971ad66a8171801, []int{0}
return fileDescriptor_group_4a94cf46004e5ca3, []int{0}
}
func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b)
@@ -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_b971ad66a8171801, []int{1}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{2}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{3}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{4}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{5}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{6}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{7}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{8}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{9}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{10}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{11}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{12}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{13}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{14}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{15}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{16}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{17}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{18}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{19}
return fileDescriptor_group_4a94cf46004e5ca3, []int{19}
}
func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b)
@@ -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_b971ad66a8171801, []int{20}
return fileDescriptor_group_4a94cf46004e5ca3, []int{20}
}
func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b)
@@ -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_b971ad66a8171801, []int{21}
return fileDescriptor_group_4a94cf46004e5ca3, []int{21}
}
func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b)
@@ -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_b971ad66a8171801, []int{22}
return fileDescriptor_group_4a94cf46004e5ca3, []int{22}
}
func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b)
@@ -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_b971ad66a8171801, []int{23}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{24}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{25}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{26}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{27}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{28}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{29}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{30}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{31}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{32}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{33}
return fileDescriptor_group_4a94cf46004e5ca3, []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_b971ad66a8171801, []int{34}
return fileDescriptor_group_4a94cf46004e5ca3, []int{34}
}
func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b)
@@ -1575,7 +1575,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_b971ad66a8171801, []int{35}
return fileDescriptor_group_4a94cf46004e5ca3, []int{35}
}
func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b)
@@ -1620,7 +1620,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_b971ad66a8171801, []int{36}
return fileDescriptor_group_4a94cf46004e5ca3, []int{36}
}
func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b)
@@ -1657,7 +1657,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_b971ad66a8171801, []int{37}
return fileDescriptor_group_4a94cf46004e5ca3, []int{37}
}
func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b)
@@ -1690,7 +1690,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_b971ad66a8171801, []int{38}
return fileDescriptor_group_4a94cf46004e5ca3, []int{38}
}
func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b)
@@ -1741,7 +1741,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_b971ad66a8171801, []int{39}
return fileDescriptor_group_4a94cf46004e5ca3, []int{39}
}
func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b)
@@ -1773,7 +1773,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_b971ad66a8171801, []int{40}
return fileDescriptor_group_4a94cf46004e5ca3, []int{40}
}
func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b)
@@ -1817,7 +1817,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_b971ad66a8171801, []int{41}
return fileDescriptor_group_4a94cf46004e5ca3, []int{41}
}
func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b)
@@ -1848,7 +1848,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_b971ad66a8171801, []int{42}
return fileDescriptor_group_4a94cf46004e5ca3, []int{42}
}
func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b)
@@ -1885,7 +1885,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_b971ad66a8171801, []int{43}
return fileDescriptor_group_4a94cf46004e5ca3, []int{43}
}
func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b)
@@ -1916,7 +1916,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_b971ad66a8171801, []int{44}
return fileDescriptor_group_4a94cf46004e5ca3, []int{44}
}
func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b)
@@ -1953,7 +1953,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_b971ad66a8171801, []int{45}
return fileDescriptor_group_4a94cf46004e5ca3, []int{45}
}
func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b)
@@ -1984,7 +1984,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_b971ad66a8171801, []int{46}
return fileDescriptor_group_4a94cf46004e5ca3, []int{46}
}
func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b)
@@ -2022,7 +2022,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_b971ad66a8171801, []int{47}
return fileDescriptor_group_4a94cf46004e5ca3, []int{47}
}
func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b)
@@ -2060,7 +2060,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_b971ad66a8171801, []int{48}
return fileDescriptor_group_4a94cf46004e5ca3, []int{48}
}
func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b)
@@ -2098,7 +2098,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_b971ad66a8171801, []int{49}
return fileDescriptor_group_4a94cf46004e5ca3, []int{49}
}
func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b)
@@ -2141,7 +2141,7 @@ func (m *SetGroupMemberInfo) Reset() { *m = SetGroupMemberInfo{} }
func (m *SetGroupMemberInfo) String() string { return proto.CompactTextString(m) }
func (*SetGroupMemberInfo) ProtoMessage() {}
func (*SetGroupMemberInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_group_b971ad66a8171801, []int{50}
return fileDescriptor_group_4a94cf46004e5ca3, []int{50}
}
func (m *SetGroupMemberInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupMemberInfo.Unmarshal(m, b)
@@ -2214,7 +2214,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_b971ad66a8171801, []int{51}
return fileDescriptor_group_4a94cf46004e5ca3, []int{51}
}
func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b)
@@ -2251,7 +2251,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_b971ad66a8171801, []int{52}
return fileDescriptor_group_4a94cf46004e5ca3, []int{52}
}
func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b)
@@ -2282,7 +2282,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_b971ad66a8171801, []int{53}
return fileDescriptor_group_4a94cf46004e5ca3, []int{53}
}
func (m *GetGroupAbstractInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupAbstractInfoReq.Unmarshal(m, b)
@@ -2322,7 +2322,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_b971ad66a8171801, []int{54}
return fileDescriptor_group_4a94cf46004e5ca3, []int{54}
}
func (m *GroupAbstractInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupAbstractInfo.Unmarshal(m, b)
@@ -2374,7 +2374,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_b971ad66a8171801, []int{55}
return fileDescriptor_group_4a94cf46004e5ca3, []int{55}
}
func (m *GetGroupAbstractInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupAbstractInfoResp.Unmarshal(m, b)
@@ -2413,7 +2413,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_b971ad66a8171801, []int{56}
return fileDescriptor_group_4a94cf46004e5ca3, []int{56}
}
func (m *GetUserInGroupMembersReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserInGroupMembersReq.Unmarshal(m, b)
@@ -2458,7 +2458,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_b971ad66a8171801, []int{57}
return fileDescriptor_group_4a94cf46004e5ca3, []int{57}
}
func (m *GetUserInGroupMembersResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserInGroupMembersResp.Unmarshal(m, b)
@@ -2496,7 +2496,7 @@ func (m *GetGroupMemberUserIDReq) Reset() { *m = GetGroupMemberUserIDReq
func (m *GetGroupMemberUserIDReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupMemberUserIDReq) ProtoMessage() {}
func (*GetGroupMemberUserIDReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_b971ad66a8171801, []int{58}
return fileDescriptor_group_4a94cf46004e5ca3, []int{58}
}
func (m *GetGroupMemberUserIDReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberUserIDReq.Unmarshal(m, b)
@@ -2534,7 +2534,7 @@ func (m *GetGroupMemberUserIDResp) Reset() { *m = GetGroupMemberUserIDRe
func (m *GetGroupMemberUserIDResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupMemberUserIDResp) ProtoMessage() {}
func (*GetGroupMemberUserIDResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_b971ad66a8171801, []int{59}
return fileDescriptor_group_4a94cf46004e5ca3, []int{59}
}
func (m *GetGroupMemberUserIDResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberUserIDResp.Unmarshal(m, b)
@@ -2561,6 +2561,90 @@ func (m *GetGroupMemberUserIDResp) GetUserIDs() []string {
return nil
}
type GetGroupMemberRoleLevelReq struct {
GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
RoleLevels []int32 `protobuf:"varint,2,rep,packed,name=roleLevels" json:"roleLevels,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetGroupMemberRoleLevelReq) Reset() { *m = GetGroupMemberRoleLevelReq{} }
func (m *GetGroupMemberRoleLevelReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupMemberRoleLevelReq) ProtoMessage() {}
func (*GetGroupMemberRoleLevelReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_4a94cf46004e5ca3, []int{60}
}
func (m *GetGroupMemberRoleLevelReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberRoleLevelReq.Unmarshal(m, b)
}
func (m *GetGroupMemberRoleLevelReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetGroupMemberRoleLevelReq.Marshal(b, m, deterministic)
}
func (dst *GetGroupMemberRoleLevelReq) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetGroupMemberRoleLevelReq.Merge(dst, src)
}
func (m *GetGroupMemberRoleLevelReq) XXX_Size() int {
return xxx_messageInfo_GetGroupMemberRoleLevelReq.Size(m)
}
func (m *GetGroupMemberRoleLevelReq) XXX_DiscardUnknown() {
xxx_messageInfo_GetGroupMemberRoleLevelReq.DiscardUnknown(m)
}
var xxx_messageInfo_GetGroupMemberRoleLevelReq proto.InternalMessageInfo
func (m *GetGroupMemberRoleLevelReq) GetGroupID() string {
if m != nil {
return m.GroupID
}
return ""
}
func (m *GetGroupMemberRoleLevelReq) GetRoleLevels() []int32 {
if m != nil {
return m.RoleLevels
}
return nil
}
type GetGroupMemberRoleLevelResp struct {
Members []*sdkws.GroupMemberFullInfo `protobuf:"bytes,1,rep,name=members" json:"members,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetGroupMemberRoleLevelResp) Reset() { *m = GetGroupMemberRoleLevelResp{} }
func (m *GetGroupMemberRoleLevelResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupMemberRoleLevelResp) ProtoMessage() {}
func (*GetGroupMemberRoleLevelResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_4a94cf46004e5ca3, []int{61}
}
func (m *GetGroupMemberRoleLevelResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberRoleLevelResp.Unmarshal(m, b)
}
func (m *GetGroupMemberRoleLevelResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetGroupMemberRoleLevelResp.Marshal(b, m, deterministic)
}
func (dst *GetGroupMemberRoleLevelResp) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetGroupMemberRoleLevelResp.Merge(dst, src)
}
func (m *GetGroupMemberRoleLevelResp) XXX_Size() int {
return xxx_messageInfo_GetGroupMemberRoleLevelResp.Size(m)
}
func (m *GetGroupMemberRoleLevelResp) XXX_DiscardUnknown() {
xxx_messageInfo_GetGroupMemberRoleLevelResp.DiscardUnknown(m)
}
var xxx_messageInfo_GetGroupMemberRoleLevelResp proto.InternalMessageInfo
func (m *GetGroupMemberRoleLevelResp) GetMembers() []*sdkws.GroupMemberFullInfo {
if m != nil {
return m.Members
}
return nil
}
func init() {
proto.RegisterType((*CreateGroupReq)(nil), "group.CreateGroupReq")
proto.RegisterType((*CreateGroupResp)(nil), "group.CreateGroupResp")
@@ -2622,6 +2706,8 @@ func init() {
proto.RegisterType((*GetUserInGroupMembersResp)(nil), "group.GetUserInGroupMembersResp")
proto.RegisterType((*GetGroupMemberUserIDReq)(nil), "group.GetGroupMemberUserIDReq")
proto.RegisterType((*GetGroupMemberUserIDResp)(nil), "group.GetGroupMemberUserIDResp")
proto.RegisterType((*GetGroupMemberRoleLevelReq)(nil), "group.GetGroupMemberRoleLevelReq")
proto.RegisterType((*GetGroupMemberRoleLevelResp)(nil), "group.GetGroupMemberRoleLevelResp")
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -2688,6 +2774,8 @@ type GroupClient interface {
GetUserInGroupMembers(ctx context.Context, in *GetUserInGroupMembersReq, opts ...grpc.CallOption) (*GetUserInGroupMembersResp, error)
// 获取群成员用户ID
GetGroupMemberUserID(ctx context.Context, in *GetGroupMemberUserIDReq, opts ...grpc.CallOption) (*GetGroupMemberUserIDResp, error)
// 查询群组中对应级别的成员
GetGroupMemberRoleLevel(ctx context.Context, in *GetGroupMemberRoleLevelReq, opts ...grpc.CallOption) (*GetGroupMemberRoleLevelResp, error)
}
type groupClient struct {
@@ -2941,6 +3029,15 @@ func (c *groupClient) GetGroupMemberUserID(ctx context.Context, in *GetGroupMemb
return out, nil
}
func (c *groupClient) GetGroupMemberRoleLevel(ctx context.Context, in *GetGroupMemberRoleLevelReq, opts ...grpc.CallOption) (*GetGroupMemberRoleLevelResp, error) {
out := new(GetGroupMemberRoleLevelResp)
err := grpc.Invoke(ctx, "/group.group/GetGroupMemberRoleLevel", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// Server API for Group service
type GroupServer interface {
@@ -2997,6 +3094,8 @@ type GroupServer interface {
GetUserInGroupMembers(context.Context, *GetUserInGroupMembersReq) (*GetUserInGroupMembersResp, error)
// 获取群成员用户ID
GetGroupMemberUserID(context.Context, *GetGroupMemberUserIDReq) (*GetGroupMemberUserIDResp, error)
// 查询群组中对应级别的成员
GetGroupMemberRoleLevel(context.Context, *GetGroupMemberRoleLevelReq) (*GetGroupMemberRoleLevelResp, error)
}
func RegisterGroupServer(s *grpc.Server, srv GroupServer) {
@@ -3489,6 +3588,24 @@ func _Group_GetGroupMemberUserID_Handler(srv interface{}, ctx context.Context, d
return interceptor(ctx, in, info, handler)
}
func _Group_GetGroupMemberRoleLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetGroupMemberRoleLevelReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(GroupServer).GetGroupMemberRoleLevel(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/group.group/GetGroupMemberRoleLevel",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GroupServer).GetGroupMemberRoleLevel(ctx, req.(*GetGroupMemberRoleLevelReq))
}
return interceptor(ctx, in, info, handler)
}
var _Group_serviceDesc = grpc.ServiceDesc{
ServiceName: "group.group",
HandlerType: (*GroupServer)(nil),
@@ -3601,126 +3718,132 @@ var _Group_serviceDesc = grpc.ServiceDesc{
MethodName: "getGroupMemberUserID",
Handler: _Group_GetGroupMemberUserID_Handler,
},
{
MethodName: "GetGroupMemberRoleLevel",
Handler: _Group_GetGroupMemberRoleLevel_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "group/group.proto",
}
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_b971ad66a8171801) }
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_4a94cf46004e5ca3) }
var fileDescriptor_group_b971ad66a8171801 = []byte{
// 1808 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x5f, 0x53, 0xdc, 0xc8,
0x11, 0x2f, 0x2d, 0x06, 0x43, 0x9b, 0x35, 0x30, 0xb0, 0x20, 0x04, 0x06, 0x32, 0xa6, 0x1c, 0x2a,
0xb1, 0x97, 0x94, 0x71, 0x5c, 0xf9, 0xe3, 0x2a, 0xc7, 0x86, 0x18, 0x93, 0xb0, 0x10, 0xb4, 0xb6,
0x53, 0x71, 0x2a, 0x45, 0xc4, 0xee, 0x20, 0xcb, 0x68, 0xa5, 0x41, 0xa3, 0x05, 0xd7, 0x95, 0xef,
0xe1, 0xee, 0xf9, 0xfe, 0x3c, 0xdc, 0xe3, 0x3d, 0xdd, 0x7d, 0x86, 0xfb, 0x38, 0xf7, 0x61, 0xae,
0x34, 0x92, 0x66, 0x47, 0xd2, 0x68, 0x17, 0x9f, 0xc1, 0x2f, 0x5b, 0xa5, 0x9e, 0xee, 0xe9, 0x9e,
0x9e, 0xfe, 0xf3, 0xeb, 0x59, 0x98, 0xb2, 0x03, 0xbf, 0x4b, 0xd7, 0xf9, 0x6f, 0x9d, 0x06, 0x7e,
0xe8, 0xa3, 0x61, 0xfe, 0x61, 0xac, 0xed, 0x53, 0xe2, 0xdd, 0xdb, 0x69, 0xdc, 0x6b, 0x92, 0xe0,
0x8c, 0x04, 0xeb, 0xf4, 0xc4, 0x5e, 0xe7, 0x0c, 0xeb, 0xac, 0x7d, 0x72, 0x78, 0xce, 0xd6, 0xcf,
0x59, 0x2c, 0x60, 0xd4, 0x07, 0x72, 0x06, 0x16, 0xa5, 0x24, 0x48, 0xf8, 0xf1, 0x4f, 0x1a, 0xdc,
0xdc, 0x0c, 0x88, 0x15, 0x92, 0xed, 0x48, 0x93, 0x49, 0x4e, 0xd1, 0x0a, 0xdc, 0x70, 0x3c, 0x27,
0x6c, 0x90, 0xce, 0x11, 0x09, 0x98, 0xae, 0xad, 0x0c, 0xad, 0x8d, 0x99, 0x32, 0x09, 0xfd, 0x05,
0xc6, 0xb8, 0x5d, 0x3b, 0xde, 0xb1, 0xaf, 0x57, 0x56, 0xb4, 0xb5, 0x1b, 0xf7, 0x17, 0xeb, 0x8c,
0x2b, 0x3c, 0xb4, 0xa8, 0x73, 0x48, 0xad, 0xc0, 0xea, 0xb0, 0xfa, 0x76, 0xca, 0x63, 0xf6, 0xd8,
0x11, 0x86, 0x71, 0xab, 0xdd, 0x71, 0xbc, 0x97, 0x8c, 0x04, 0x3b, 0x5b, 0x4c, 0x1f, 0xe2, 0xdb,
0x67, 0x68, 0x91, 0x05, 0xfe, 0xb9, 0x47, 0x82, 0xf8, 0x5b, 0xbf, 0xb6, 0xa2, 0x45, 0x16, 0x48,
0x24, 0xdc, 0x80, 0x89, 0x8c, 0xd5, 0x8c, 0x66, 0x8d, 0xd2, 0x3e, 0xc8, 0x28, 0x5c, 0x87, 0xc9,
0x6d, 0x12, 0xf2, 0x25, 0xc6, 0xd7, 0xc8, 0x29, 0x32, 0x60, 0x34, 0x66, 0xd8, 0x4a, 0x7d, 0x20,
0xbe, 0xf1, 0x01, 0x4c, 0xe5, 0xf8, 0x19, 0x45, 0x8f, 0x00, 0xc4, 0x8e, 0xb1, 0xc8, 0x20, 0x0b,
0x24, 0x7e, 0x7c, 0x08, 0x13, 0xcd, 0x64, 0xcb, 0xd4, 0x82, 0x5d, 0x98, 0x10, 0x0c, 0xcf, 0xfc,
0xa0, 0x49, 0xc2, 0xe4, 0x5c, 0xb8, 0xdf, 0xae, 0x31, 0xa7, 0x99, 0x17, 0xc5, 0x08, 0x26, 0xb3,
0x0a, 0x18, 0xc5, 0x5f, 0x6a, 0x60, 0xa4, 0x07, 0x79, 0x42, 0xa9, 0xeb, 0xb4, 0xac, 0xd0, 0xf1,
0xbd, 0x5d, 0x87, 0x85, 0x91, 0x01, 0x5b, 0x00, 0xd4, 0xb2, 0x1d, 0x8f, 0x13, 0x13, 0xdd, 0xab,
0x0a, 0xdd, 0x26, 0x39, 0xed, 0x12, 0x16, 0xfe, 0x4b, 0xf0, 0x9a, 0x92, 0x1c, 0x5a, 0x02, 0x38,
0x0e, 0xfc, 0x4e, 0x72, 0x99, 0x15, 0x7e, 0x99, 0x12, 0x05, 0x7f, 0x06, 0x0b, 0xa5, 0x36, 0x30,
0x8a, 0x66, 0x60, 0x38, 0xf4, 0x43, 0xcb, 0xe5, 0xfa, 0xab, 0x66, 0xfc, 0x81, 0xfe, 0x0e, 0x55,
0x3b, 0x09, 0xd8, 0x48, 0x35, 0xd3, 0x2b, 0xdc, 0xdf, 0xcb, 0x65, 0x9e, 0x49, 0xf8, 0xcc, 0xac,
0x14, 0x7e, 0x0f, 0x8b, 0xdb, 0x24, 0x8c, 0x0c, 0x31, 0xc9, 0xe9, 0x95, 0x79, 0x60, 0x16, 0x46,
0xba, 0xf2, 0xe9, 0x93, 0x2f, 0xfc, 0x1e, 0x6e, 0xf5, 0xd1, 0x7e, 0xd5, 0x67, 0xff, 0x42, 0x83,
0xda, 0x8b, 0xc0, 0xf2, 0xd8, 0x31, 0x09, 0x38, 0xdf, 0x7e, 0x94, 0x60, 0xd1, 0xa9, 0x75, 0xb8,
0x9e, 0x84, 0x3a, 0x57, 0x3c, 0x66, 0xa6, 0x9f, 0xe8, 0x0e, 0xdc, 0xf4, 0xdd, 0xf6, 0xbe, 0x94,
0x9c, 0xf1, 0x89, 0x72, 0xd4, 0x88, 0xcf, 0x23, 0xe7, 0x32, 0xdf, 0x50, 0xcc, 0x97, 0xa5, 0x62,
0x1d, 0x66, 0x55, 0x26, 0x30, 0x8a, 0xbf, 0xd1, 0x60, 0xfc, 0x1f, 0xbe, 0xe3, 0x89, 0xb2, 0x54,
0x6e, 0xd4, 0x12, 0x40, 0x40, 0x4e, 0x1b, 0x84, 0x31, 0xcb, 0x26, 0x69, 0x80, 0xf5, 0x28, 0xd1,
0xfa, 0x5b, 0xdf, 0xf1, 0x9a, 0x7e, 0x37, 0x68, 0x11, 0x6e, 0xc8, 0xb0, 0x29, 0x51, 0xd0, 0x2a,
0x54, 0x1d, 0xef, 0xcc, 0x09, 0x73, 0x05, 0x27, 0x4b, 0xc4, 0x13, 0x50, 0x95, 0xec, 0x61, 0x14,
0x7f, 0xaf, 0xc1, 0x42, 0x3e, 0x6a, 0xa3, 0x05, 0xdf, 0x63, 0x64, 0xa0, 0xc1, 0xfd, 0x32, 0x22,
0x5a, 0x7f, 0x63, 0x79, 0x6d, 0x97, 0xb4, 0x1b, 0xcc, 0x4e, 0x3c, 0x27, 0x51, 0xa2, 0x1a, 0x1a,
0x7f, 0x99, 0x84, 0x75, 0xdd, 0x90, 0xdb, 0x3b, 0x6c, 0x66, 0x68, 0x78, 0x09, 0x16, 0xcb, 0x8d,
0x63, 0x14, 0xaf, 0xc1, 0xf8, 0x41, 0xd7, 0x09, 0x07, 0xbb, 0x37, 0x3a, 0xb8, 0xc4, 0xc9, 0x28,
0xfe, 0x56, 0x83, 0x5a, 0x9a, 0xb1, 0x71, 0x4b, 0xb8, 0xdc, 0x74, 0x91, 0x4c, 0xa9, 0x64, 0x1d,
0x37, 0x0b, 0x23, 0xc7, 0x8e, 0x1b, 0x92, 0x20, 0xb9, 0xc5, 0xe4, 0x0b, 0x53, 0x98, 0x55, 0x19,
0x54, 0x9a, 0x41, 0x7f, 0x83, 0xeb, 0x9d, 0xa4, 0xbd, 0xc5, 0xb9, 0x73, 0xa7, 0x2c, 0x77, 0xe2,
0xed, 0x9e, 0x75, 0x5d, 0x97, 0x17, 0xcd, 0x54, 0x0c, 0xef, 0xe6, 0x35, 0x8a, 0xbe, 0x51, 0x7e,
0xed, 0x7a, 0x56, 0xeb, 0x58, 0x6f, 0xb7, 0xff, 0xc2, 0x9c, 0x72, 0x37, 0x46, 0x65, 0x53, 0xb5,
0x5f, 0x67, 0xaa, 0x0b, 0xe8, 0x9f, 0x4e, 0xeb, 0x44, 0xe2, 0xe9, 0x6f, 0xe6, 0x2a, 0x54, 0x4f,
0x9c, 0xd6, 0x09, 0x69, 0xa7, 0x2d, 0x3a, 0x36, 0x36, 0x4b, 0x8c, 0xae, 0x22, 0x20, 0x16, 0xf3,
0xbd, 0x24, 0x3e, 0x93, 0x2f, 0x5c, 0x83, 0xe9, 0x82, 0x36, 0x46, 0xf1, 0xe7, 0x3c, 0x64, 0xa2,
0x04, 0x22, 0x6d, 0xbe, 0xf6, 0x69, 0x7b, 0x4c, 0x9b, 0x5f, 0x57, 0x41, 0x7d, 0x69, 0x80, 0x3c,
0x80, 0x11, 0xee, 0x8e, 0x34, 0x3e, 0xfa, 0xf7, 0xf1, 0x84, 0x17, 0x53, 0x98, 0xd9, 0xe1, 0x35,
0x23, 0xd2, 0xfa, 0xc2, 0xbf, 0x40, 0xe9, 0xea, 0x79, 0xb1, 0x22, 0x7b, 0x31, 0xaa, 0x9f, 0x71,
0xf5, 0x69, 0x67, 0x71, 0x52, 0x8e, 0x8a, 0xe7, 0xa0, 0xa6, 0xd0, 0xc8, 0x28, 0x3e, 0x83, 0x19,
0xd1, 0x54, 0x5d, 0xb7, 0x77, 0xed, 0x57, 0x9c, 0xa1, 0xf8, 0x3f, 0xbd, 0xd2, 0x20, 0xe9, 0xbd,
0x94, 0x38, 0xfe, 0x51, 0x83, 0xd1, 0xcd, 0x46, 0x93, 0xf3, 0x7c, 0x0c, 0xda, 0x43, 0x75, 0x40,
0xb6, 0x68, 0x36, 0x91, 0xe3, 0xf6, 0xac, 0x4e, 0xda, 0x37, 0x14, 0x2b, 0xe8, 0x77, 0x30, 0x99,
0xa5, 0x8a, 0x76, 0x56, 0xa0, 0xe3, 0xaf, 0x34, 0x18, 0x17, 0xd0, 0xf0, 0xf2, 0x1c, 0xbe, 0x98,
0x1c, 0x57, 0xb2, 0xb4, 0x47, 0x90, 0xaf, 0x63, 0x28, 0x7b, 0x1d, 0x7b, 0x50, 0x95, 0xac, 0x29,
0x0d, 0xf7, 0xdf, 0xe6, 0xc2, 0x7d, 0xa2, 0x1e, 0x0f, 0x21, 0xa9, 0xbb, 0x45, 0x84, 0xdf, 0xeb,
0x01, 0xdf, 0x0b, 0x94, 0x12, 0xfc, 0x5d, 0xa1, 0x53, 0xb0, 0xcd, 0x46, 0xf3, 0x53, 0x74, 0x0a,
0x03, 0x46, 0xbb, 0xe9, 0xcd, 0xc6, 0x3e, 0x11, 0xdf, 0xc5, 0x6e, 0x11, 0x1b, 0x75, 0x85, 0xdd,
0xe2, 0xf7, 0x30, 0xb1, 0xe5, 0xb0, 0x8e, 0xc3, 0xd8, 0x05, 0xfa, 0x2d, 0x82, 0xc9, 0x2c, 0x33,
0xa3, 0xf8, 0x2d, 0xa0, 0x46, 0x37, 0x99, 0x76, 0x2e, 0x52, 0xc3, 0x4b, 0x10, 0x67, 0x84, 0x1c,
0x3a, 0xdd, 0x90, 0xb4, 0x9b, 0xa4, 0xe5, 0x7b, 0x6d, 0xc6, 0x5d, 0x53, 0x35, 0x33, 0xb4, 0xa8,
0x82, 0x17, 0x74, 0x31, 0x8a, 0x77, 0x41, 0xdf, 0xb4, 0xbc, 0x16, 0x71, 0x2f, 0xc3, 0x10, 0xbc,
0x00, 0xf3, 0x25, 0xbb, 0xc5, 0xd8, 0x44, 0x90, 0x07, 0x62, 0x13, 0x89, 0x93, 0x51, 0x5c, 0x07,
0x94, 0xdb, 0xb7, 0xff, 0x06, 0x35, 0x98, 0x2e, 0xf0, 0x33, 0x8a, 0x1f, 0xf0, 0xb9, 0x28, 0xee,
0x17, 0xcd, 0x2e, 0x4d, 0xd0, 0x69, 0xda, 0xb3, 0x7a, 0x87, 0xd2, 0x32, 0x87, 0x6a, 0xf2, 0x49,
0x46, 0x2d, 0xc5, 0xa8, 0xd4, 0x54, 0xb4, 0x0f, 0x68, 0x2a, 0x1b, 0x3c, 0x85, 0x7a, 0xdb, 0x5d,
0x68, 0x40, 0x7d, 0xc5, 0x43, 0xbc, 0x20, 0xf4, 0xd1, 0x53, 0xea, 0x0f, 0x15, 0x40, 0xcd, 0x4c,
0xee, 0xf0, 0x8a, 0xfa, 0xe1, 0x81, 0xf8, 0x27, 0x18, 0xf5, 0x9c, 0xd6, 0x89, 0x97, 0xe6, 0x67,
0x64, 0x84, 0xed, 0xfb, 0xb6, 0x4b, 0xe2, 0x87, 0x89, 0xa3, 0xee, 0x71, 0xbd, 0x19, 0x06, 0x8e,
0x67, 0xbf, 0xb2, 0xdc, 0x2e, 0x31, 0x05, 0x37, 0x7a, 0x08, 0xd7, 0x8f, 0xad, 0x16, 0x79, 0x69,
0xee, 0x72, 0xdc, 0x3b, 0x48, 0x30, 0x65, 0x46, 0x7f, 0x86, 0xb1, 0xc0, 0x77, 0xc9, 0x2e, 0x39,
0x23, 0xae, 0x3e, 0xcc, 0x25, 0x17, 0x0a, 0x92, 0x3b, 0x5e, 0xb8, 0x71, 0x3f, 0x16, 0xec, 0x71,
0xa3, 0xbb, 0x50, 0x21, 0xef, 0xf4, 0x91, 0x0b, 0x68, 0xab, 0x90, 0x77, 0x78, 0x17, 0x6a, 0x45,
0x17, 0x45, 0x17, 0xb6, 0x91, 0x6f, 0x81, 0xf3, 0x49, 0x99, 0x55, 0xb0, 0x8b, 0xd2, 0xa1, 0xc3,
0xac, 0x6a, 0x37, 0x46, 0xf1, 0x1f, 0x7b, 0xa0, 0xf1, 0xc9, 0x11, 0x0b, 0x03, 0xab, 0x15, 0x5e,
0x24, 0x34, 0xbe, 0xd6, 0x60, 0xaa, 0x20, 0xd4, 0xe7, 0x06, 0xef, 0x26, 0xef, 0x52, 0xb1, 0xf6,
0xbd, 0x6e, 0xf4, 0xcb, 0x2f, 0xb3, 0x6a, 0x16, 0x17, 0xd0, 0x1f, 0x60, 0xda, 0xce, 0xc2, 0xf0,
0xe7, 0x16, 0x7b, 0xc3, 0xaf, 0xf8, 0x9a, 0xa9, 0x5a, 0xc2, 0x6d, 0xd0, 0xd5, 0xc7, 0x60, 0x14,
0x3d, 0x4f, 0x3a, 0xb5, 0xbc, 0x90, 0x3a, 0x4f, 0x4f, 0x9c, 0x57, 0x94, 0x54, 0xc8, 0xe0, 0x3d,
0xae, 0x85, 0x37, 0x69, 0x4f, 0xae, 0xfc, 0x7d, 0xd2, 0x39, 0xe3, 0xc5, 0x4a, 0xce, 0x8b, 0xff,
0x83, 0xf9, 0x92, 0xfd, 0x2e, 0x05, 0xeb, 0x6c, 0xe4, 0x07, 0x82, 0x18, 0x5e, 0xf4, 0xaf, 0x65,
0x0f, 0x7a, 0x9e, 0xcc, 0x0a, 0x31, 0x1a, 0x49, 0x75, 0x13, 0x24, 0x19, 0x07, 0x44, 0xfa, 0x79,
0xff, 0xe7, 0x49, 0x88, 0x5f, 0x19, 0xd1, 0x23, 0xb8, 0xd1, 0xea, 0x3d, 0xaa, 0xa1, 0x5a, 0x0a,
0x02, 0x32, 0xcf, 0x83, 0xc6, 0xac, 0x8a, 0xcc, 0x28, 0x7a, 0x08, 0x63, 0x6f, 0xd3, 0xf9, 0x18,
0x4d, 0x27, 0x4c, 0xf2, 0x04, 0x6f, 0xcc, 0x14, 0x89, 0xb1, 0xdc, 0x69, 0x3a, 0x5e, 0x0a, 0x39,
0x79, 0x34, 0x15, 0x72, 0x99, 0x29, 0x14, 0x3d, 0x85, 0xaa, 0x2d, 0xbf, 0xc1, 0xa1, 0xb9, 0x34,
0x20, 0x72, 0x2f, 0x79, 0x86, 0xae, 0x5e, 0x60, 0x14, 0x3d, 0x86, 0x71, 0x26, 0xbd, 0x89, 0xa1,
0xd9, 0x5c, 0x42, 0xa6, 0x3b, 0xcc, 0x29, 0xe9, 0x8c, 0xa2, 0xff, 0xc3, 0x9c, 0xad, 0x7e, 0xbb,
0x42, 0xbf, 0xc9, 0x69, 0x2d, 0xbe, 0x2e, 0x19, 0x78, 0x10, 0x0b, 0xa3, 0xe8, 0x18, 0xe6, 0xed,
0xb2, 0x37, 0x22, 0x74, 0xbb, 0xb7, 0x41, 0xe9, 0x1b, 0x96, 0xb1, 0x3a, 0x98, 0x89, 0x51, 0x74,
0x00, 0x28, 0x2c, 0xbc, 0xc4, 0xa0, 0xc5, 0x44, 0x56, 0xf9, 0x4e, 0x64, 0xdc, 0xea, 0xb3, 0xca,
0x28, 0x6a, 0x81, 0x6e, 0x97, 0x3c, 0x41, 0x20, 0x9c, 0xc9, 0x5e, 0xe5, 0x03, 0x8a, 0x71, 0x7b,
0x20, 0x4f, 0x6c, 0xb7, 0x5d, 0x18, 0xfd, 0x85, 0xdd, 0xca, 0x67, 0x0a, 0x61, 0x77, 0xc9, 0x9b,
0xc1, 0x0b, 0x98, 0xb6, 0x8b, 0xd3, 0x38, 0x52, 0x4b, 0x89, 0x28, 0x5b, 0xea, 0xb7, 0xcc, 0x6b,
0xd9, 0xc4, 0x49, 0x76, 0x30, 0x46, 0x69, 0xfd, 0x2f, 0x8e, 0xe7, 0x86, 0x51, 0xb6, 0x24, 0x8e,
0x9c, 0x1b, 0x66, 0xe5, 0x23, 0x17, 0xc7, 0x6c, 0xf9, 0xc8, 0xaa, 0x29, 0x78, 0x0f, 0xa6, 0x9c,
0xfc, 0x1c, 0x89, 0x16, 0x12, 0x19, 0xd5, 0x4c, 0x6b, 0x2c, 0x96, 0x2f, 0xc6, 0x49, 0x2d, 0x92,
0x53, 0x24, 0xb5, 0x3c, 0x17, 0x89, 0xa4, 0xce, 0x8e, 0x27, 0x85, 0xdb, 0x8c, 0xa0, 0x79, 0xc9,
0x6d, 0x26, 0xa3, 0x44, 0xc9, 0x6d, 0x0a, 0x4c, 0xff, 0x18, 0xc6, 0xdb, 0x12, 0x9c, 0x16, 0x39,
0x9e, 0x03, 0xe4, 0x22, 0xc7, 0xf3, 0xd8, 0x3b, 0xba, 0xb8, 0x4e, 0x16, 0xa4, 0x8a, 0x8b, 0x2b,
0x42, 0x61, 0x71, 0x71, 0x0a, 0x5c, 0x8b, 0x5e, 0x43, 0xad, 0xa5, 0x02, 0xbd, 0x68, 0x39, 0xad,
0xa9, 0x25, 0x00, 0xdb, 0x58, 0xe9, 0xcf, 0x10, 0x7b, 0x5c, 0x58, 0x29, 0x3c, 0x2e, 0x83, 0x60,
0xe1, 0xf1, 0x0c, 0xd2, 0x8d, 0x4e, 0x97, 0xb3, 0x49, 0x9c, 0xae, 0x08, 0xa4, 0xc5, 0xe9, 0x14,
0x98, 0x39, 0xa9, 0x85, 0x2a, 0xf4, 0x2b, 0xd7, 0xc2, 0x12, 0x4c, 0x2d, 0xd7, 0xc2, 0x52, 0x00,
0x1d, 0x47, 0x47, 0x0e, 0xd5, 0xca, 0xd1, 0x51, 0x44, 0xc9, 0x72, 0x74, 0xa8, 0xe0, 0xf0, 0x01,
0x20, 0x56, 0xc4, 0xb3, 0x8b, 0xe5, 0xc0, 0x4c, 0xda, 0x52, 0x8d, 0xcb, 0xd0, 0xbf, 0x61, 0xc6,
0x56, 0x00, 0x1a, 0x94, 0x2f, 0x10, 0x39, 0xd0, 0x66, 0x2c, 0xf7, 0x5d, 0x8f, 0xc3, 0xc7, 0x56,
0x61, 0x0e, 0xb4, 0x9c, 0xad, 0xf0, 0x05, 0x84, 0x23, 0xc2, 0xa7, 0x1c, 0xb2, 0x48, 0x46, 0xcb,
0xd8, 0x01, 0xa9, 0xab, 0x9a, 0x40, 0x23, 0x05, 0xa3, 0xf3, 0xc0, 0xe3, 0xe9, 0xf2, 0xeb, 0x5b,
0xfb, 0x94, 0x78, 0x87, 0x3b, 0x0d, 0xe9, 0xbf, 0x48, 0x2e, 0xf3, 0x57, 0xfe, 0x7b, 0x34, 0xc2,
0x49, 0x1b, 0xbf, 0x04, 0x00, 0x00, 0xff, 0xff, 0x19, 0x28, 0x60, 0x4b, 0xfe, 0x1c, 0x00, 0x00,
var fileDescriptor_group_4a94cf46004e5ca3 = []byte{
// 1833 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0x51, 0x53, 0xe4, 0xc6,
0x11, 0xae, 0xdd, 0x33, 0xdc, 0xd1, 0xc7, 0x1a, 0x18, 0xd8, 0x45, 0x27, 0xb8, 0x83, 0x8c, 0xaf,
0x62, 0x2a, 0x31, 0x8b, 0x0b, 0x2e, 0x2e, 0xbb, 0x92, 0x2a, 0xe7, 0xcc, 0xc5, 0x18, 0x87, 0x85,
0xa0, 0x3d, 0x3b, 0x29, 0xbf, 0xc4, 0x62, 0x77, 0x90, 0x75, 0x68, 0xa5, 0x41, 0xa3, 0x05, 0x3f,
0x26, 0x95, 0x87, 0x3c, 0x25, 0x8f, 0x79, 0xc9, 0x53, 0xde, 0xf2, 0x2b, 0xf2, 0xdb, 0x52, 0x9a,
0x91, 0x46, 0x23, 0xcd, 0x68, 0x77, 0xcd, 0x1d, 0x2f, 0x5b, 0xa5, 0xee, 0x9e, 0xe9, 0x9e, 0x9e,
0xee, 0x9e, 0xaf, 0x7b, 0x61, 0xc5, 0x8b, 0xa3, 0x31, 0xdd, 0xe3, 0xbf, 0x5d, 0x1a, 0x47, 0x49,
0x84, 0xe6, 0xf8, 0x87, 0xfd, 0xe1, 0x19, 0x25, 0xe1, 0xee, 0x71, 0x6f, 0xb7, 0x4f, 0xe2, 0x1b,
0x12, 0xef, 0xd1, 0x2b, 0x6f, 0x8f, 0x0b, 0xec, 0xb1, 0xe1, 0xd5, 0x2d, 0xdb, 0xbb, 0x65, 0x42,
0xde, 0xde, 0x9d, 0x26, 0x18, 0xbb, 0x94, 0x92, 0x38, 0x13, 0xc7, 0xff, 0x6d, 0xc0, 0xfb, 0x87,
0x31, 0x71, 0x13, 0x72, 0x94, 0xea, 0x71, 0xc8, 0x35, 0xda, 0x86, 0xc7, 0x7e, 0xe8, 0x27, 0x3d,
0x32, 0xba, 0x20, 0x31, 0xb3, 0x1a, 0xdb, 0x0f, 0x76, 0x16, 0x1c, 0x95, 0x84, 0xba, 0xb0, 0xc0,
0xad, 0x3a, 0x0e, 0x2f, 0x23, 0xab, 0xb9, 0xdd, 0xd8, 0x79, 0xbc, 0xbf, 0xdc, 0xe5, 0xdb, 0x77,
0x8f, 0x72, 0xba, 0x53, 0x88, 0x20, 0x0c, 0x8b, 0xee, 0x70, 0xe4, 0x87, 0xdf, 0x30, 0x12, 0x1f,
0xbf, 0x62, 0xd6, 0x03, 0xbe, 0x65, 0x89, 0x96, 0x6a, 0x8d, 0x6e, 0x43, 0x12, 0x8b, 0x6f, 0xeb,
0xbd, 0xed, 0x46, 0xaa, 0x55, 0x21, 0xe1, 0x97, 0xb0, 0x54, 0xb2, 0x94, 0xd1, 0xb2, 0x21, 0x8d,
0xa9, 0x86, 0xe0, 0x2e, 0x2c, 0x1f, 0x91, 0x84, 0xb3, 0x18, 0xe7, 0x91, 0x6b, 0x64, 0xc3, 0x23,
0x21, 0xf0, 0x2a, 0x3f, 0xab, 0xfc, 0xc6, 0xbf, 0x83, 0x95, 0x8a, 0x3c, 0xa3, 0xe8, 0x63, 0x00,
0xb9, 0xa3, 0x58, 0x62, 0xd2, 0xaa, 0xc8, 0xe0, 0x3e, 0x2c, 0xf5, 0xb3, 0x6d, 0x72, 0xad, 0xbf,
0x85, 0x25, 0x29, 0xf0, 0x65, 0x14, 0xf7, 0x49, 0x92, 0xd9, 0xdf, 0xa9, 0xee, 0x24, 0xb8, 0x4e,
0x55, 0x1c, 0x23, 0x58, 0x2e, 0x6f, 0xca, 0x28, 0xbe, 0x01, 0x3b, 0xb7, 0xf7, 0x25, 0xa5, 0x81,
0x3f, 0x70, 0x13, 0x3f, 0x0a, 0x4f, 0x7c, 0x96, 0xa4, 0x3a, 0x3f, 0x05, 0xa0, 0xae, 0xe7, 0x87,
0x9c, 0x98, 0xa9, 0xb3, 0x32, 0x75, 0x0e, 0xb9, 0x1e, 0x13, 0x96, 0xfc, 0x41, 0xf2, 0x1d, 0x45,
0x16, 0x3d, 0x03, 0xb8, 0x8c, 0xa3, 0x51, 0x76, 0x37, 0x4d, 0x7e, 0x37, 0x0a, 0x05, 0x87, 0xb0,
0x51, 0xab, 0x97, 0x51, 0xb4, 0x06, 0x73, 0x49, 0x94, 0xb8, 0x01, 0xd7, 0xd9, 0x72, 0xc4, 0x07,
0xfa, 0x0c, 0x5a, 0x5e, 0x16, 0x73, 0xa9, 0x6a, 0x66, 0x35, 0xb9, 0x2b, 0x57, 0x55, 0x07, 0x64,
0x3c, 0xa7, 0x2c, 0x89, 0x29, 0x6c, 0x1e, 0x91, 0x24, 0x55, 0xee, 0x90, 0xeb, 0x77, 0x7a, 0xd2,
0x0e, 0xcc, 0x8f, 0xd5, 0x53, 0x66, 0x5f, 0x98, 0xc2, 0xd3, 0x09, 0x1a, 0xef, 0xe3, 0x8c, 0x7f,
0x6d, 0x40, 0xfb, 0x75, 0xec, 0x86, 0xec, 0x92, 0xc4, 0x5c, 0xee, 0x2c, 0xcd, 0x85, 0xf4, 0x74,
0x16, 0x3c, 0xcc, 0x22, 0x94, 0x2b, 0x5b, 0x70, 0xf2, 0x4f, 0xf4, 0x73, 0x78, 0x3f, 0x0a, 0x86,
0x67, 0x4a, 0x1e, 0x89, 0x53, 0x54, 0xa8, 0xa9, 0x5c, 0x48, 0x6e, 0x55, 0xb9, 0x07, 0x42, 0xae,
0x4c, 0xc5, 0x16, 0x74, 0x4c, 0x26, 0x30, 0x8a, 0xff, 0xd9, 0x80, 0xc5, 0xaf, 0x23, 0x3f, 0x94,
0x55, 0xa3, 0xde, 0xa8, 0x67, 0x00, 0x31, 0xb9, 0xee, 0x11, 0xc6, 0x5c, 0x8f, 0xe4, 0xc1, 0x53,
0x50, 0x52, 0xfe, 0x9b, 0xc8, 0x0f, 0xfb, 0xd1, 0x38, 0x1e, 0x10, 0x6e, 0xc8, 0x9c, 0xa3, 0x50,
0xd0, 0x73, 0x68, 0xf9, 0xe1, 0x8d, 0x9f, 0x54, 0x6a, 0x43, 0x99, 0x88, 0x97, 0xa0, 0xa5, 0xd8,
0xc3, 0x28, 0xfe, 0x77, 0x03, 0x36, 0xaa, 0x11, 0x99, 0x32, 0xa2, 0x90, 0x91, 0xa9, 0x06, 0x4f,
0x8a, 0xf6, 0x94, 0xff, 0x83, 0x1b, 0x0e, 0x03, 0x32, 0xec, 0x31, 0x2f, 0xf3, 0x9c, 0x42, 0x49,
0xcb, 0x9d, 0xf8, 0x72, 0x08, 0x1b, 0x07, 0x09, 0xb7, 0x77, 0xce, 0x29, 0xd1, 0xf0, 0x33, 0xd8,
0xac, 0x37, 0x8e, 0x51, 0xbc, 0x03, 0x8b, 0xe7, 0x63, 0x3f, 0x99, 0xee, 0xde, 0xf4, 0xe0, 0x8a,
0x24, 0xa3, 0xf8, 0x6f, 0x0d, 0x68, 0xe7, 0xd9, 0x28, 0x2a, 0xf6, 0xdb, 0xa7, 0x85, 0xa2, 0xbe,
0x59, 0x76, 0x56, 0x07, 0xe6, 0x2f, 0xfd, 0x20, 0x21, 0x71, 0x76, 0x73, 0xd9, 0x17, 0x1e, 0x42,
0xc7, 0x64, 0x44, 0x6d, 0xa6, 0xbc, 0x80, 0x87, 0xa3, 0xec, 0xc5, 0x11, 0x39, 0x62, 0xab, 0x39,
0x22, 0xb6, 0xf8, 0x72, 0x1c, 0x04, 0xbc, 0xd6, 0xe5, 0xa2, 0xf8, 0xa4, 0xaa, 0x45, 0x96, 0xf5,
0xfa, 0xeb, 0xb5, 0xca, 0x9a, 0x16, 0x8a, 0xdd, 0xce, 0x60, 0xdd, 0xb8, 0x1b, 0xa3, 0xaa, 0x79,
0x8d, 0xd9, 0xcd, 0x0b, 0x00, 0xfd, 0xde, 0x1f, 0x5c, 0x29, 0x32, 0x93, 0x4d, 0x7b, 0x0e, 0xad,
0x2b, 0x7f, 0x70, 0x45, 0x86, 0xf9, 0x4b, 0x29, 0x0c, 0x2c, 0x13, 0x53, 0x97, 0xc7, 0xc4, 0x65,
0x51, 0x98, 0xc5, 0x5e, 0xf6, 0x85, 0xdb, 0xb0, 0xaa, 0x69, 0x63, 0x14, 0x5f, 0xf3, 0x70, 0x48,
0x93, 0x83, 0x0c, 0x39, 0xef, 0xfe, 0xdf, 0x83, 0x3f, 0xf1, 0x6b, 0xd1, 0x54, 0xd6, 0x5e, 0xfe,
0x0e, 0xcc, 0x73, 0x17, 0xe4, 0x77, 0xaf, 0x3f, 0xa7, 0x19, 0x1f, 0x53, 0x58, 0x3b, 0xe6, 0x79,
0x9f, 0x6a, 0x7a, 0x1d, 0xcd, 0x50, 0x7e, 0x0a, 0x6f, 0x35, 0x55, 0x6f, 0xa5, 0x35, 0x50, 0x54,
0x90, 0x61, 0x19, 0x96, 0x54, 0xa8, 0x78, 0x1d, 0xda, 0x06, 0x8d, 0x8c, 0xe2, 0x37, 0xb0, 0x26,
0x1f, 0xbd, 0x20, 0x28, 0xae, 0xf7, 0x1e, 0xb2, 0x0c, 0xf7, 0x8a, 0x94, 0x56, 0x74, 0xdd, 0x39,
0x2e, 0xff, 0xd5, 0x80, 0x47, 0x87, 0xbd, 0x3e, 0x97, 0xf9, 0xa9, 0x20, 0x0a, 0x75, 0x01, 0x79,
0xf2, 0x31, 0x48, 0x9d, 0x72, 0xea, 0x8e, 0xf2, 0xba, 0x6e, 0xe0, 0xa0, 0x5f, 0xc0, 0x72, 0x99,
0x2a, 0x9f, 0x1b, 0x8d, 0x8e, 0xff, 0xd2, 0x80, 0x45, 0x89, 0xb8, 0xde, 0xce, 0x99, 0x9b, 0xd9,
0xb1, 0x14, 0xeb, 0x0a, 0x82, 0xea, 0xea, 0x07, 0x65, 0x57, 0x9f, 0x42, 0x4b, 0xb1, 0xa0, 0x36,
0x64, 0x3f, 0xac, 0x84, 0xec, 0x52, 0x57, 0xa0, 0xf6, 0xdc, 0xad, 0x32, 0x62, 0x77, 0x0b, 0x0c,
0x39, 0x43, 0x09, 0xc0, 0x7f, 0xd7, 0xaa, 0x37, 0x3b, 0xec, 0xf5, 0xef, 0xab, 0x7a, 0xdb, 0xf0,
0x68, 0x9c, 0xdf, 0xa0, 0xf0, 0x83, 0xfc, 0xd6, 0x2b, 0xb8, 0x30, 0xe4, 0x1d, 0x57, 0xf0, 0x5f,
0xc2, 0xd2, 0x2b, 0x9f, 0x8d, 0x7c, 0xc6, 0x66, 0x78, 0xeb, 0x10, 0x2c, 0x97, 0x85, 0x79, 0x1a,
0xa2, 0xde, 0x38, 0x6b, 0x0a, 0x66, 0xa9, 0xb1, 0x35, 0x08, 0x2f, 0x7d, 0xb5, 0x47, 0xe3, 0x84,
0x0c, 0xfb, 0x64, 0x10, 0x85, 0x43, 0xc6, 0xdd, 0xd1, 0x72, 0x4a, 0xb4, 0xb4, 0xc2, 0x6a, 0xba,
0x18, 0xc5, 0x27, 0x60, 0x1d, 0xba, 0xe1, 0x80, 0x04, 0xef, 0xc2, 0x10, 0xbc, 0x01, 0x4f, 0x6a,
0x76, 0x13, 0xb8, 0x40, 0x92, 0xa7, 0xe2, 0x02, 0x45, 0x92, 0x51, 0xdc, 0x05, 0x54, 0xd9, 0x77,
0xf2, 0x06, 0x6d, 0x58, 0xd5, 0xe4, 0x19, 0xc5, 0x2f, 0x78, 0x8f, 0x21, 0x6a, 0x7b, 0x7f, 0x4c,
0x33, 0x64, 0x98, 0xbf, 0x29, 0xc5, 0xa1, 0x1a, 0xa5, 0x43, 0x1d, 0xf1, 0x0e, 0xc1, 0xbc, 0x8a,
0x51, 0xe5, 0x01, 0x68, 0x4c, 0x79, 0x00, 0x0e, 0x78, 0x7a, 0x14, 0x5b, 0xcc, 0xd4, 0xc7, 0x7d,
0xcd, 0x43, 0x59, 0x5b, 0x74, 0xa7, 0x66, 0xee, 0x3f, 0x4d, 0x40, 0xfd, 0x52, 0x5e, 0xf0, 0xaa,
0xf8, 0xd3, 0x03, 0xee, 0x53, 0x78, 0x14, 0xfa, 0x83, 0xab, 0x30, 0xcf, 0xbd, 0xc7, 0xfb, 0x9b,
0x5d, 0x2f, 0x8a, 0xbc, 0x80, 0x88, 0xde, 0xfc, 0x62, 0x7c, 0xd9, 0xed, 0x27, 0xb1, 0x1f, 0x7a,
0xdf, 0xba, 0xc1, 0x98, 0x38, 0x52, 0x1a, 0x7d, 0x02, 0x0f, 0x2f, 0xdd, 0x01, 0xf9, 0xc6, 0x39,
0xe1, 0xd8, 0x72, 0xda, 0xc2, 0x5c, 0x18, 0x7d, 0x06, 0x0b, 0x71, 0x14, 0x90, 0x13, 0x72, 0x43,
0x02, 0x6b, 0x8e, 0xaf, 0xdc, 0xd0, 0x56, 0x1e, 0x87, 0xc9, 0xc1, 0xbe, 0x58, 0x58, 0x48, 0xa3,
0x8f, 0xa0, 0x49, 0x7e, 0xb4, 0xe6, 0x67, 0xd0, 0xd6, 0x24, 0x3f, 0xe2, 0x13, 0x68, 0xeb, 0x2e,
0x4a, 0x2f, 0xe9, 0xa0, 0xfa, 0x5c, 0x3d, 0xc9, 0xca, 0xa6, 0x41, 0x5c, 0x96, 0x08, 0x0b, 0x3a,
0xa6, 0xdd, 0x18, 0xc5, 0xbf, 0x2a, 0x00, 0xdb, 0xcb, 0x0b, 0x96, 0xc4, 0xee, 0x20, 0x99, 0x25,
0x1c, 0xfe, 0xd1, 0x80, 0x15, 0x6d, 0xd1, 0x84, 0x1b, 0xfc, 0x28, 0x1b, 0xcc, 0x08, 0xed, 0xa7,
0xe3, 0xf4, 0x97, 0x5f, 0x66, 0xcb, 0xd1, 0x19, 0xe8, 0x63, 0x58, 0xf5, 0xca, 0xb0, 0xf7, 0x2b,
0x97, 0xfd, 0xc0, 0xaf, 0xf8, 0x3d, 0xc7, 0xc4, 0xc2, 0x43, 0xb0, 0xcc, 0xc7, 0x60, 0x14, 0x7d,
0x95, 0xbd, 0xb6, 0x2a, 0x23, 0x77, 0x9e, 0x95, 0x39, 0x4f, 0x5f, 0x69, 0x58, 0x83, 0x4f, 0xb9,
0x16, 0xfe, 0xd0, 0x86, 0x6a, 0x55, 0x9f, 0x90, 0xb6, 0x25, 0x2f, 0x36, 0x2b, 0x5e, 0x3c, 0x87,
0x27, 0x35, 0xfb, 0xdd, 0x19, 0x97, 0x1c, 0x54, 0x01, 0xb8, 0x80, 0x05, 0x93, 0xeb, 0xd4, 0x8b,
0xc2, 0x7b, 0xe5, 0x45, 0x8c, 0xa6, 0xab, 0xc6, 0x19, 0xba, 0x13, 0x41, 0x90, 0x7f, 0xe2, 0x6f,
0x8b, 0x51, 0x49, 0x56, 0x5e, 0xf3, 0x58, 0x9f, 0xde, 0xcd, 0xe6, 0x92, 0xc2, 0x27, 0x73, 0x8e,
0x42, 0xc1, 0xfd, 0x62, 0x14, 0xa2, 0xed, 0x7b, 0x57, 0xbf, 0xec, 0xff, 0x6f, 0x05, 0xc4, 0x1c,
0x10, 0xfd, 0x06, 0x1e, 0x0f, 0x8a, 0x21, 0x18, 0x6a, 0xe7, 0xa8, 0xa3, 0x34, 0xc2, 0xb3, 0x3b,
0x26, 0x32, 0xa3, 0xe8, 0x13, 0x58, 0x78, 0x93, 0x37, 0xc9, 0x68, 0x35, 0x13, 0x52, 0xdb, 0x78,
0x7b, 0x4d, 0x27, 0x8a, 0x75, 0xd7, 0x79, 0x8f, 0x29, 0xd7, 0xa9, 0xfd, 0xa9, 0x5c, 0x57, 0x6a,
0x45, 0xd1, 0x17, 0xd0, 0xf2, 0xd4, 0xf9, 0x19, 0x5a, 0xcf, 0x23, 0xb6, 0x32, 0x85, 0xb3, 0x2d,
0x33, 0x83, 0x51, 0xf4, 0x39, 0x2c, 0x32, 0x65, 0xce, 0x85, 0x3a, 0x95, 0x8a, 0x91, 0xef, 0xb0,
0x6e, 0xa4, 0x33, 0x8a, 0xbe, 0x87, 0x75, 0xcf, 0x3c, 0x9c, 0x42, 0x3f, 0xab, 0x68, 0xd5, 0x47,
0x49, 0x36, 0x9e, 0x26, 0xc2, 0x28, 0xba, 0x84, 0x27, 0x5e, 0xdd, 0x70, 0x08, 0x7d, 0x50, 0x6c,
0x50, 0x3b, 0xb0, 0xb2, 0x9f, 0x4f, 0x17, 0x62, 0x14, 0x9d, 0x03, 0x4a, 0xb4, 0x71, 0x0c, 0xda,
0xcc, 0xd6, 0x1a, 0x87, 0x45, 0xf6, 0xd3, 0x09, 0x5c, 0x46, 0xd1, 0x00, 0x2c, 0xaf, 0x66, 0x0e,
0x81, 0x70, 0xa9, 0xbc, 0x18, 0xa7, 0x28, 0xf6, 0x07, 0x53, 0x65, 0x84, 0xdd, 0x9e, 0x36, 0x0b,
0x90, 0x76, 0x1b, 0x67, 0x15, 0xd2, 0xee, 0x9a, 0x21, 0xc2, 0x6b, 0x58, 0xf5, 0xf4, 0x56, 0x1d,
0x99, 0x57, 0xc9, 0x28, 0x7b, 0x36, 0x89, 0xcd, 0x8b, 0xed, 0xd2, 0x55, 0xb9, 0x83, 0x46, 0xf9,
0x03, 0xa5, 0xf7, 0xf1, 0xb6, 0x5d, 0xc7, 0x92, 0x47, 0xae, 0x74, 0xc0, 0xea, 0x91, 0xf5, 0x7e,
0x5c, 0x3d, 0xb2, 0xa9, 0x75, 0x3e, 0x85, 0x15, 0xbf, 0xda, 0x88, 0xa2, 0x8d, 0x6c, 0x8d, 0xa9,
0x29, 0xb6, 0x37, 0xeb, 0x99, 0x22, 0xa9, 0x65, 0x72, 0xca, 0xa4, 0x56, 0x9b, 0x2f, 0x99, 0xd4,
0xe5, 0x7e, 0x48, 0xbb, 0xcd, 0xb4, 0x2f, 0xa8, 0xb9, 0xcd, 0xac, 0x77, 0xa9, 0xb9, 0x4d, 0xd9,
0x50, 0x7c, 0x0e, 0x8b, 0x43, 0x05, 0xd7, 0xcb, 0x1c, 0xaf, 0x74, 0x06, 0x32, 0xc7, 0xab, 0x4d,
0x40, 0x7a, 0x71, 0xa3, 0x32, 0x5a, 0x96, 0x17, 0xa7, 0x63, 0x72, 0x79, 0x71, 0x06, 0x80, 0x8d,
0xbe, 0x83, 0xf6, 0xc0, 0x84, 0xbe, 0xd1, 0x56, 0x5e, 0x53, 0x6b, 0x90, 0xbe, 0xbd, 0x3d, 0x59,
0x40, 0x78, 0x5c, 0x5a, 0x29, 0x3d, 0xae, 0xa2, 0x71, 0xe9, 0xf1, 0x12, 0xe4, 0x4e, 0x4f, 0x57,
0xb1, 0x49, 0x9e, 0x4e, 0x47, 0xf4, 0xf2, 0x74, 0x06, 0xf0, 0x9e, 0xd5, 0x42, 0x13, 0x0c, 0x57,
0x6b, 0x61, 0x0d, 0xb8, 0x57, 0x6b, 0x61, 0x2d, 0x92, 0x17, 0xd1, 0x51, 0x81, 0xda, 0x6a, 0x74,
0xe8, 0xd0, 0x5d, 0x8d, 0x0e, 0x13, 0x46, 0x3f, 0x07, 0xc4, 0x74, 0xc0, 0xbd, 0x59, 0x8f, 0x1c,
0x95, 0x2d, 0xcd, 0xc0, 0x11, 0xfd, 0x11, 0xd6, 0x3c, 0x03, 0xe2, 0x42, 0xd5, 0x02, 0x51, 0x41,
0x95, 0xf6, 0xd6, 0x44, 0xbe, 0x08, 0x1f, 0xcf, 0x04, 0x8a, 0xd0, 0x56, 0xb9, 0xc2, 0x6b, 0x10,
0x4c, 0x86, 0x4f, 0x3d, 0xa6, 0x52, 0x8c, 0x56, 0x81, 0x0e, 0x32, 0x57, 0x35, 0x09, 0x9d, 0x34,
0xa3, 0x35, 0x94, 0xf4, 0x7d, 0x15, 0x76, 0x49, 0xcc, 0xa2, 0xbd, 0x90, 0x3a, 0x56, 0xd2, 0x5e,
0x48, 0x03, 0xec, 0xf9, 0x62, 0xeb, 0xbb, 0xa7, 0x67, 0x94, 0x84, 0x7f, 0x3e, 0xee, 0x29, 0x7f,
0x48, 0xf2, 0x65, 0xbf, 0xe6, 0xbf, 0x17, 0xf3, 0x9c, 0x74, 0xf0, 0xff, 0x00, 0x00, 0x00, 0xff,
0xff, 0x9c, 0xc0, 0xab, 0xba, 0x02, 0x1d, 0x00, 0x00,
}
+10 -1
View File
@@ -279,7 +279,7 @@ message GetUserInGroupMembersReq {
repeated string groupIDs = 2;
}
message getUserInGroupMembersResp{
message GetUserInGroupMembersResp{
repeated sdkws.GroupMemberFullInfo members = 1;
}
@@ -291,7 +291,14 @@ message GetGroupMemberUserIDResp{
repeated string userIDs = 1;
}
message GetGroupMemberRoleLevelReq{
string groupID = 1;
repeated int32 roleLevels = 2;
}
message GetGroupMemberRoleLevelResp {
repeated sdkws.GroupMemberFullInfo members = 1;
}
service group{
//
@@ -350,6 +357,8 @@ service group{
rpc getUserInGroupMembers(GetUserInGroupMembersReq) returns (GetUserInGroupMembersResp);
//ID
rpc getGroupMemberUserID(GetGroupMemberUserIDReq) returns (GetGroupMemberUserIDResp);
//
rpc GetGroupMemberRoleLevel(GetGroupMemberRoleLevelReq)returns (GetGroupMemberRoleLevelResp);
}
+156 -417
View File
@@ -38,7 +38,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} }
func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) }
func (*MsgDataToMQ) ProtoMessage() {}
func (*MsgDataToMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{0}
return fileDescriptor_msg_9bd9d9abca588885, []int{0}
}
func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b)
@@ -91,7 +91,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} }
func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) }
func (*MsgDataToDB) ProtoMessage() {}
func (*MsgDataToDB) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{1}
return fileDescriptor_msg_9bd9d9abca588885, []int{1}
}
func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b)
@@ -138,7 +138,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} }
func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) }
func (*PushMsgDataToMQ) ProtoMessage() {}
func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{2}
return fileDescriptor_msg_9bd9d9abca588885, []int{2}
}
func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b)
@@ -193,7 +193,7 @@ func (m *MsgDataToMongoByMQ) Reset() { *m = MsgDataToMongoByMQ{} }
func (m *MsgDataToMongoByMQ) String() string { return proto.CompactTextString(m) }
func (*MsgDataToMongoByMQ) ProtoMessage() {}
func (*MsgDataToMongoByMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{3}
return fileDescriptor_msg_9bd9d9abca588885, []int{3}
}
func (m *MsgDataToMongoByMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToMongoByMQ.Unmarshal(m, b)
@@ -241,26 +241,6 @@ func (m *MsgDataToMongoByMQ) GetTriggerID() string {
return ""
}
// message PullMessageReq {
// string UserID = 1;
// int64 SeqBegin = 2;
// int64 SeqEnd = 3;
// string OperationID = 4;
// }
//
// message PullMessageResp {
// int32 ErrCode = 1;
// string ErrMsg = 2;
// int64 MaxSeq = 3;
// int64 MinSeq = 4;
// repeated GatherFormat SingleUserMsg = 5;
// repeated GatherFormat GroupUserMsg = 6;
// }
// message PullMessageBySeqListReq{
// string UserID = 1;
// string OperationID = 2;
// repeated int64 seqList =3;
// }
type GetMaxAndMinSeqReq struct {
UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"`
OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"`
@@ -273,7 +253,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} }
func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqReq) ProtoMessage() {}
func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{4}
return fileDescriptor_msg_9bd9d9abca588885, []int{4}
}
func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b)
@@ -321,7 +301,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} }
func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqResp) ProtoMessage() {}
func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{5}
return fileDescriptor_msg_9bd9d9abca588885, []int{5}
}
func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b)
@@ -370,8 +350,6 @@ func (m *GetMaxAndMinSeqResp) GetMinSeq() uint32 {
}
type SendMsgReq struct {
Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"`
OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"`
MsgData *sdkws.MsgData `protobuf:"bytes,3,opt,name=msgData" json:"msgData,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@@ -382,7 +360,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} }
func (m *SendMsgReq) String() string { return proto.CompactTextString(m) }
func (*SendMsgReq) ProtoMessage() {}
func (*SendMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{6}
return fileDescriptor_msg_9bd9d9abca588885, []int{6}
}
func (m *SendMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsgReq.Unmarshal(m, b)
@@ -402,20 +380,6 @@ func (m *SendMsgReq) XXX_DiscardUnknown() {
var xxx_messageInfo_SendMsgReq proto.InternalMessageInfo
func (m *SendMsgReq) GetToken() string {
if m != nil {
return m.Token
}
return ""
}
func (m *SendMsgReq) GetOperationID() string {
if m != nil {
return m.OperationID
}
return ""
}
func (m *SendMsgReq) GetMsgData() *sdkws.MsgData {
if m != nil {
return m.MsgData
@@ -424,8 +388,6 @@ func (m *SendMsgReq) GetMsgData() *sdkws.MsgData {
}
type SendMsgResp struct {
ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"`
ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"`
ServerMsgID string `protobuf:"bytes,4,opt,name=serverMsgID" json:"serverMsgID,omitempty"`
ClientMsgID string `protobuf:"bytes,5,opt,name=clientMsgID" json:"clientMsgID,omitempty"`
SendTime int64 `protobuf:"varint,6,opt,name=sendTime" json:"sendTime,omitempty"`
@@ -438,7 +400,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} }
func (m *SendMsgResp) String() string { return proto.CompactTextString(m) }
func (*SendMsgResp) ProtoMessage() {}
func (*SendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{7}
return fileDescriptor_msg_9bd9d9abca588885, []int{7}
}
func (m *SendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsgResp.Unmarshal(m, b)
@@ -458,20 +420,6 @@ func (m *SendMsgResp) XXX_DiscardUnknown() {
var xxx_messageInfo_SendMsgResp proto.InternalMessageInfo
func (m *SendMsgResp) GetErrCode() int32 {
if m != nil {
return m.ErrCode
}
return 0
}
func (m *SendMsgResp) GetErrMsg() string {
if m != nil {
return m.ErrMsg
}
return ""
}
func (m *SendMsgResp) GetServerMsgID() string {
if m != nil {
return m.ServerMsgID
@@ -495,8 +443,6 @@ func (m *SendMsgResp) GetSendTime() int64 {
type ClearMsgReq struct {
UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"`
OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -506,7 +452,7 @@ func (m *ClearMsgReq) Reset() { *m = ClearMsgReq{} }
func (m *ClearMsgReq) String() string { return proto.CompactTextString(m) }
func (*ClearMsgReq) ProtoMessage() {}
func (*ClearMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{8}
return fileDescriptor_msg_9bd9d9abca588885, []int{8}
}
func (m *ClearMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClearMsgReq.Unmarshal(m, b)
@@ -533,23 +479,7 @@ func (m *ClearMsgReq) GetUserID() string {
return ""
}
func (m *ClearMsgReq) GetOpUserID() string {
if m != nil {
return m.OpUserID
}
return ""
}
func (m *ClearMsgReq) GetOperationID() string {
if m != nil {
return m.OperationID
}
return ""
}
type ClearMsgResp struct {
ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"`
ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -559,7 +489,7 @@ func (m *ClearMsgResp) Reset() { *m = ClearMsgResp{} }
func (m *ClearMsgResp) String() string { return proto.CompactTextString(m) }
func (*ClearMsgResp) ProtoMessage() {}
func (*ClearMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{9}
return fileDescriptor_msg_9bd9d9abca588885, []int{9}
}
func (m *ClearMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClearMsgResp.Unmarshal(m, b)
@@ -579,26 +509,10 @@ func (m *ClearMsgResp) XXX_DiscardUnknown() {
var xxx_messageInfo_ClearMsgResp proto.InternalMessageInfo
func (m *ClearMsgResp) GetErrCode() int32 {
if m != nil {
return m.ErrCode
}
return 0
}
func (m *ClearMsgResp) GetErrMsg() string {
if m != nil {
return m.ErrMsg
}
return ""
}
type SetMsgMinSeqReq struct {
UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
GroupID string `protobuf:"bytes,2,opt,name=groupID" json:"groupID,omitempty"`
MinSeq uint32 `protobuf:"varint,3,opt,name=minSeq" json:"minSeq,omitempty"`
OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"`
OpUserID string `protobuf:"bytes,5,opt,name=opUserID" json:"opUserID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -608,7 +522,7 @@ func (m *SetMsgMinSeqReq) Reset() { *m = SetMsgMinSeqReq{} }
func (m *SetMsgMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*SetMsgMinSeqReq) ProtoMessage() {}
func (*SetMsgMinSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{10}
return fileDescriptor_msg_9bd9d9abca588885, []int{10}
}
func (m *SetMsgMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMsgMinSeqReq.Unmarshal(m, b)
@@ -649,23 +563,7 @@ func (m *SetMsgMinSeqReq) GetMinSeq() uint32 {
return 0
}
func (m *SetMsgMinSeqReq) GetOperationID() string {
if m != nil {
return m.OperationID
}
return ""
}
func (m *SetMsgMinSeqReq) GetOpUserID() string {
if m != nil {
return m.OpUserID
}
return ""
}
type SetMsgMinSeqResp struct {
ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"`
ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -675,7 +573,7 @@ func (m *SetMsgMinSeqResp) Reset() { *m = SetMsgMinSeqResp{} }
func (m *SetMsgMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*SetMsgMinSeqResp) ProtoMessage() {}
func (*SetMsgMinSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{11}
return fileDescriptor_msg_9bd9d9abca588885, []int{11}
}
func (m *SetMsgMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMsgMinSeqResp.Unmarshal(m, b)
@@ -695,22 +593,7 @@ func (m *SetMsgMinSeqResp) XXX_DiscardUnknown() {
var xxx_messageInfo_SetMsgMinSeqResp proto.InternalMessageInfo
func (m *SetMsgMinSeqResp) GetErrCode() int32 {
if m != nil {
return m.ErrCode
}
return 0
}
func (m *SetMsgMinSeqResp) GetErrMsg() string {
if m != nil {
return m.ErrMsg
}
return ""
}
type SetSendMsgStatusReq struct {
OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"`
Status int32 `protobuf:"varint,2,opt,name=status" json:"status,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@@ -721,7 +604,7 @@ func (m *SetSendMsgStatusReq) Reset() { *m = SetSendMsgStatusReq{} }
func (m *SetSendMsgStatusReq) String() string { return proto.CompactTextString(m) }
func (*SetSendMsgStatusReq) ProtoMessage() {}
func (*SetSendMsgStatusReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{12}
return fileDescriptor_msg_9bd9d9abca588885, []int{12}
}
func (m *SetSendMsgStatusReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetSendMsgStatusReq.Unmarshal(m, b)
@@ -741,13 +624,6 @@ func (m *SetSendMsgStatusReq) XXX_DiscardUnknown() {
var xxx_messageInfo_SetSendMsgStatusReq proto.InternalMessageInfo
func (m *SetSendMsgStatusReq) GetOperationID() string {
if m != nil {
return m.OperationID
}
return ""
}
func (m *SetSendMsgStatusReq) GetStatus() int32 {
if m != nil {
return m.Status
@@ -756,8 +632,6 @@ func (m *SetSendMsgStatusReq) GetStatus() int32 {
}
type SetSendMsgStatusResp struct {
ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"`
ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -767,7 +641,7 @@ func (m *SetSendMsgStatusResp) Reset() { *m = SetSendMsgStatusResp{} }
func (m *SetSendMsgStatusResp) String() string { return proto.CompactTextString(m) }
func (*SetSendMsgStatusResp) ProtoMessage() {}
func (*SetSendMsgStatusResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{13}
return fileDescriptor_msg_9bd9d9abca588885, []int{13}
}
func (m *SetSendMsgStatusResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetSendMsgStatusResp.Unmarshal(m, b)
@@ -787,20 +661,6 @@ func (m *SetSendMsgStatusResp) XXX_DiscardUnknown() {
var xxx_messageInfo_SetSendMsgStatusResp proto.InternalMessageInfo
func (m *SetSendMsgStatusResp) GetErrCode() int32 {
if m != nil {
return m.ErrCode
}
return 0
}
func (m *SetSendMsgStatusResp) GetErrMsg() string {
if m != nil {
return m.ErrMsg
}
return ""
}
type GetSendMsgStatusReq struct {
OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -812,7 +672,7 @@ func (m *GetSendMsgStatusReq) Reset() { *m = GetSendMsgStatusReq{} }
func (m *GetSendMsgStatusReq) String() string { return proto.CompactTextString(m) }
func (*GetSendMsgStatusReq) ProtoMessage() {}
func (*GetSendMsgStatusReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{14}
return fileDescriptor_msg_9bd9d9abca588885, []int{14}
}
func (m *GetSendMsgStatusReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSendMsgStatusReq.Unmarshal(m, b)
@@ -852,7 +712,7 @@ func (m *GetSendMsgStatusResp) Reset() { *m = GetSendMsgStatusResp{} }
func (m *GetSendMsgStatusResp) String() string { return proto.CompactTextString(m) }
func (*GetSendMsgStatusResp) ProtoMessage() {}
func (*GetSendMsgStatusResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{15}
return fileDescriptor_msg_9bd9d9abca588885, []int{15}
}
func (m *GetSendMsgStatusResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSendMsgStatusResp.Unmarshal(m, b)
@@ -894,10 +754,8 @@ func (m *GetSendMsgStatusResp) GetStatus() int32 {
}
type DelSuperGroupMsgReq struct {
OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"`
UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"`
GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"`
OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -907,7 +765,7 @@ func (m *DelSuperGroupMsgReq) Reset() { *m = DelSuperGroupMsgReq{} }
func (m *DelSuperGroupMsgReq) String() string { return proto.CompactTextString(m) }
func (*DelSuperGroupMsgReq) ProtoMessage() {}
func (*DelSuperGroupMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{16}
return fileDescriptor_msg_9bd9d9abca588885, []int{16}
}
func (m *DelSuperGroupMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DelSuperGroupMsgReq.Unmarshal(m, b)
@@ -927,13 +785,6 @@ func (m *DelSuperGroupMsgReq) XXX_DiscardUnknown() {
var xxx_messageInfo_DelSuperGroupMsgReq proto.InternalMessageInfo
func (m *DelSuperGroupMsgReq) GetOpUserID() string {
if m != nil {
return m.OpUserID
}
return ""
}
func (m *DelSuperGroupMsgReq) GetUserID() string {
if m != nil {
return m.UserID
@@ -948,16 +799,7 @@ func (m *DelSuperGroupMsgReq) GetGroupID() string {
return ""
}
func (m *DelSuperGroupMsgReq) GetOperationID() string {
if m != nil {
return m.OperationID
}
return ""
}
type DelSuperGroupMsgResp struct {
ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"`
ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -967,7 +809,7 @@ func (m *DelSuperGroupMsgResp) Reset() { *m = DelSuperGroupMsgResp{} }
func (m *DelSuperGroupMsgResp) String() string { return proto.CompactTextString(m) }
func (*DelSuperGroupMsgResp) ProtoMessage() {}
func (*DelSuperGroupMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{17}
return fileDescriptor_msg_9bd9d9abca588885, []int{17}
}
func (m *DelSuperGroupMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DelSuperGroupMsgResp.Unmarshal(m, b)
@@ -987,20 +829,6 @@ func (m *DelSuperGroupMsgResp) XXX_DiscardUnknown() {
var xxx_messageInfo_DelSuperGroupMsgResp proto.InternalMessageInfo
func (m *DelSuperGroupMsgResp) GetErrCode() int32 {
if m != nil {
return m.ErrCode
}
return 0
}
func (m *DelSuperGroupMsgResp) GetErrMsg() string {
if m != nil {
return m.ErrMsg
}
return ""
}
type GetSuperGroupMsgReq struct {
OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"`
Seq uint32 `protobuf:"varint,2,opt,name=Seq" json:"Seq,omitempty"`
@@ -1014,7 +842,7 @@ func (m *GetSuperGroupMsgReq) Reset() { *m = GetSuperGroupMsgReq{} }
func (m *GetSuperGroupMsgReq) String() string { return proto.CompactTextString(m) }
func (*GetSuperGroupMsgReq) ProtoMessage() {}
func (*GetSuperGroupMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{18}
return fileDescriptor_msg_9bd9d9abca588885, []int{18}
}
func (m *GetSuperGroupMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupMsgReq.Unmarshal(m, b)
@@ -1068,7 +896,7 @@ func (m *GetSuperGroupMsgResp) Reset() { *m = GetSuperGroupMsgResp{} }
func (m *GetSuperGroupMsgResp) String() string { return proto.CompactTextString(m) }
func (*GetSuperGroupMsgResp) ProtoMessage() {}
func (*GetSuperGroupMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{19}
return fileDescriptor_msg_9bd9d9abca588885, []int{19}
}
func (m *GetSuperGroupMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupMsgResp.Unmarshal(m, b)
@@ -1121,7 +949,7 @@ func (m *GetWriteDiffMsgReq) Reset() { *m = GetWriteDiffMsgReq{} }
func (m *GetWriteDiffMsgReq) String() string { return proto.CompactTextString(m) }
func (*GetWriteDiffMsgReq) ProtoMessage() {}
func (*GetWriteDiffMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{20}
return fileDescriptor_msg_9bd9d9abca588885, []int{20}
}
func (m *GetWriteDiffMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetWriteDiffMsgReq.Unmarshal(m, b)
@@ -1168,7 +996,7 @@ func (m *GetWriteDiffMsgResp) Reset() { *m = GetWriteDiffMsgResp{} }
func (m *GetWriteDiffMsgResp) String() string { return proto.CompactTextString(m) }
func (*GetWriteDiffMsgResp) ProtoMessage() {}
func (*GetWriteDiffMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{21}
return fileDescriptor_msg_9bd9d9abca588885, []int{21}
}
func (m *GetWriteDiffMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetWriteDiffMsgResp.Unmarshal(m, b)
@@ -1230,7 +1058,7 @@ func (m *ModifyMessageReactionExtensionsReq) Reset() { *m = ModifyMessag
func (m *ModifyMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*ModifyMessageReactionExtensionsReq) ProtoMessage() {}
func (*ModifyMessageReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{22}
return fileDescriptor_msg_9bd9d9abca588885, []int{22}
}
func (m *ModifyMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ModifyMessageReactionExtensionsReq.Unmarshal(m, b)
@@ -1348,7 +1176,7 @@ func (m *SetMessageReactionExtensionsReq) Reset() { *m = SetMessageReact
func (m *SetMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*SetMessageReactionExtensionsReq) ProtoMessage() {}
func (*SetMessageReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{23}
return fileDescriptor_msg_9bd9d9abca588885, []int{23}
}
func (m *SetMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMessageReactionExtensionsReq.Unmarshal(m, b)
@@ -1461,7 +1289,7 @@ func (m *SetMessageReactionExtensionsResp) Reset() { *m = SetMessageReac
func (m *SetMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*SetMessageReactionExtensionsResp) ProtoMessage() {}
func (*SetMessageReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{24}
return fileDescriptor_msg_9bd9d9abca588885, []int{24}
}
func (m *SetMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMessageReactionExtensionsResp.Unmarshal(m, b)
@@ -1538,7 +1366,7 @@ func (m *GetMessageListReactionExtensionsReq) Reset() { *m = GetMessageL
func (m *GetMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*GetMessageListReactionExtensionsReq) ProtoMessage() {}
func (*GetMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{25}
return fileDescriptor_msg_9bd9d9abca588885, []int{25}
}
func (m *GetMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMessageListReactionExtensionsReq.Unmarshal(m, b)
@@ -1609,7 +1437,7 @@ func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) String() string
}
func (*GetMessageListReactionExtensionsReq_MessageReactionKey) ProtoMessage() {}
func (*GetMessageListReactionExtensionsReq_MessageReactionKey) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{25, 0}
return fileDescriptor_msg_9bd9d9abca588885, []int{25, 0}
}
func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMessageListReactionExtensionsReq_MessageReactionKey.Unmarshal(m, b)
@@ -1656,7 +1484,7 @@ func (m *GetMessageListReactionExtensionsResp) Reset() { *m = GetMessage
func (m *GetMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*GetMessageListReactionExtensionsResp) ProtoMessage() {}
func (*GetMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{26}
return fileDescriptor_msg_9bd9d9abca588885, []int{26}
}
func (m *GetMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMessageListReactionExtensionsResp.Unmarshal(m, b)
@@ -1711,7 +1539,7 @@ func (m *SingleMessageExtensionResult) Reset() { *m = SingleMessageExten
func (m *SingleMessageExtensionResult) String() string { return proto.CompactTextString(m) }
func (*SingleMessageExtensionResult) ProtoMessage() {}
func (*SingleMessageExtensionResult) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{27}
return fileDescriptor_msg_9bd9d9abca588885, []int{27}
}
func (m *SingleMessageExtensionResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SingleMessageExtensionResult.Unmarshal(m, b)
@@ -1773,7 +1601,7 @@ func (m *ModifyMessageReactionExtensionsResp) Reset() { *m = ModifyMessa
func (m *ModifyMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*ModifyMessageReactionExtensionsResp) ProtoMessage() {}
func (*ModifyMessageReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{28}
return fileDescriptor_msg_9bd9d9abca588885, []int{28}
}
func (m *ModifyMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ModifyMessageReactionExtensionsResp.Unmarshal(m, b)
@@ -1841,7 +1669,7 @@ func (m *DeleteMessageListReactionExtensionsReq) Reset() {
func (m *DeleteMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*DeleteMessageListReactionExtensionsReq) ProtoMessage() {}
func (*DeleteMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{29}
return fileDescriptor_msg_9bd9d9abca588885, []int{29}
}
func (m *DeleteMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteMessageListReactionExtensionsReq.Unmarshal(m, b)
@@ -1932,7 +1760,7 @@ func (m *DeleteMessageListReactionExtensionsResp) Reset() {
func (m *DeleteMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*DeleteMessageListReactionExtensionsResp) ProtoMessage() {}
func (*DeleteMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{30}
return fileDescriptor_msg_9bd9d9abca588885, []int{30}
}
func (m *DeleteMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteMessageListReactionExtensionsResp.Unmarshal(m, b)
@@ -1986,7 +1814,7 @@ func (m *ExtendMsgResp) Reset() { *m = ExtendMsgResp{} }
func (m *ExtendMsgResp) String() string { return proto.CompactTextString(m) }
func (*ExtendMsgResp) ProtoMessage() {}
func (*ExtendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{31}
return fileDescriptor_msg_9bd9d9abca588885, []int{31}
}
func (m *ExtendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExtendMsgResp.Unmarshal(m, b)
@@ -2042,7 +1870,7 @@ func (m *ExtendMsg) Reset() { *m = ExtendMsg{} }
func (m *ExtendMsg) String() string { return proto.CompactTextString(m) }
func (*ExtendMsg) ProtoMessage() {}
func (*ExtendMsg) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{32}
return fileDescriptor_msg_9bd9d9abca588885, []int{32}
}
func (m *ExtendMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExtendMsg.Unmarshal(m, b)
@@ -2110,7 +1938,7 @@ func (m *KeyValueResp) Reset() { *m = KeyValueResp{} }
func (m *KeyValueResp) String() string { return proto.CompactTextString(m) }
func (*KeyValueResp) ProtoMessage() {}
func (*KeyValueResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{33}
return fileDescriptor_msg_9bd9d9abca588885, []int{33}
}
func (m *KeyValueResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyValueResp.Unmarshal(m, b)
@@ -2164,7 +1992,7 @@ func (m *MsgDataToModifyByMQ) Reset() { *m = MsgDataToModifyByMQ{} }
func (m *MsgDataToModifyByMQ) String() string { return proto.CompactTextString(m) }
func (*MsgDataToModifyByMQ) ProtoMessage() {}
func (*MsgDataToModifyByMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_4f5a59ae8be91efc, []int{34}
return fileDescriptor_msg_9bd9d9abca588885, []int{34}
}
func (m *MsgDataToModifyByMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToModifyByMQ.Unmarshal(m, b)
@@ -2259,18 +2087,23 @@ const _ = grpc.SupportPackageIsVersion4
// Client API for Msg service
type MsgClient interface {
// 获取最小最大seq(包括用户的,以及指定群组的)
GetMaxAndMinSeq(ctx context.Context, in *sdkws.GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*sdkws.GetMaxAndMinSeqResp, error)
// 拉取历史消息(包括用户的,以及指定群组的)
PullMessageBySeqList(ctx context.Context, in *sdkws.PullMessageBySeqListReq, opts ...grpc.CallOption) (*sdkws.PullMessageBySeqListResp, error)
// 发送消息
SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.CallOption) (*SendMsgResp, error)
// 删除某人消息
DelMsgList(ctx context.Context, in *sdkws.DelMsgListReq, opts ...grpc.CallOption) (*sdkws.DelMsgListResp, error)
// 删除某个用户某个大群消息
DelSuperGroupMsg(ctx context.Context, in *DelSuperGroupMsgReq, opts ...grpc.CallOption) (*DelSuperGroupMsgResp, error)
// 清空某人所有消息
ClearMsg(ctx context.Context, in *ClearMsgReq, opts ...grpc.CallOption) (*ClearMsgResp, error)
SetMsgMinSeq(ctx context.Context, in *SetMsgMinSeqReq, opts ...grpc.CallOption) (*SetMsgMinSeqResp, error)
// 设置消息是否发送成功-针对api发送的消息
SetSendMsgStatus(ctx context.Context, in *SetSendMsgStatusReq, opts ...grpc.CallOption) (*SetSendMsgStatusResp, error)
// 获取消息发送状态
GetSendMsgStatus(ctx context.Context, in *GetSendMsgStatusReq, opts ...grpc.CallOption) (*GetSendMsgStatusResp, error)
GetSuperGroupMsg(ctx context.Context, in *GetSuperGroupMsgReq, opts ...grpc.CallOption) (*GetSuperGroupMsgResp, error)
GetWriteDiffMsg(ctx context.Context, in *GetWriteDiffMsgReq, opts ...grpc.CallOption) (*GetWriteDiffMsgResp, error)
// modify msg
// 修改消息
SetMessageReactionExtensions(ctx context.Context, in *SetMessageReactionExtensionsReq, opts ...grpc.CallOption) (*SetMessageReactionExtensionsResp, error)
GetMessageListReactionExtensions(ctx context.Context, in *GetMessageListReactionExtensionsReq, opts ...grpc.CallOption) (*GetMessageListReactionExtensionsResp, error)
AddMessageReactionExtensions(ctx context.Context, in *ModifyMessageReactionExtensionsReq, opts ...grpc.CallOption) (*ModifyMessageReactionExtensionsResp, error)
@@ -2339,15 +2172,6 @@ func (c *msgClient) ClearMsg(ctx context.Context, in *ClearMsgReq, opts ...grpc.
return out, nil
}
func (c *msgClient) SetMsgMinSeq(ctx context.Context, in *SetMsgMinSeqReq, opts ...grpc.CallOption) (*SetMsgMinSeqResp, error) {
out := new(SetMsgMinSeqResp)
err := grpc.Invoke(ctx, "/msg.msg/SetMsgMinSeq", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *msgClient) SetSendMsgStatus(ctx context.Context, in *SetSendMsgStatusReq, opts ...grpc.CallOption) (*SetSendMsgStatusResp, error) {
out := new(SetSendMsgStatusResp)
err := grpc.Invoke(ctx, "/msg.msg/SetSendMsgStatus", in, out, c.cc, opts...)
@@ -2366,24 +2190,6 @@ func (c *msgClient) GetSendMsgStatus(ctx context.Context, in *GetSendMsgStatusRe
return out, nil
}
func (c *msgClient) GetSuperGroupMsg(ctx context.Context, in *GetSuperGroupMsgReq, opts ...grpc.CallOption) (*GetSuperGroupMsgResp, error) {
out := new(GetSuperGroupMsgResp)
err := grpc.Invoke(ctx, "/msg.msg/GetSuperGroupMsg", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *msgClient) GetWriteDiffMsg(ctx context.Context, in *GetWriteDiffMsgReq, opts ...grpc.CallOption) (*GetWriteDiffMsgResp, error) {
out := new(GetWriteDiffMsgResp)
err := grpc.Invoke(ctx, "/msg.msg/GetWriteDiffMsg", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *msgClient) SetMessageReactionExtensions(ctx context.Context, in *SetMessageReactionExtensionsReq, opts ...grpc.CallOption) (*SetMessageReactionExtensionsResp, error) {
out := new(SetMessageReactionExtensionsResp)
err := grpc.Invoke(ctx, "/msg.msg/SetMessageReactionExtensions", in, out, c.cc, opts...)
@@ -2423,18 +2229,23 @@ func (c *msgClient) DeleteMessageReactionExtensions(ctx context.Context, in *Del
// Server API for Msg service
type MsgServer interface {
// 获取最小最大seq(包括用户的,以及指定群组的)
GetMaxAndMinSeq(context.Context, *sdkws.GetMaxAndMinSeqReq) (*sdkws.GetMaxAndMinSeqResp, error)
// 拉取历史消息(包括用户的,以及指定群组的)
PullMessageBySeqList(context.Context, *sdkws.PullMessageBySeqListReq) (*sdkws.PullMessageBySeqListResp, error)
// 发送消息
SendMsg(context.Context, *SendMsgReq) (*SendMsgResp, error)
// 删除某人消息
DelMsgList(context.Context, *sdkws.DelMsgListReq) (*sdkws.DelMsgListResp, error)
// 删除某个用户某个大群消息
DelSuperGroupMsg(context.Context, *DelSuperGroupMsgReq) (*DelSuperGroupMsgResp, error)
// 清空某人所有消息
ClearMsg(context.Context, *ClearMsgReq) (*ClearMsgResp, error)
SetMsgMinSeq(context.Context, *SetMsgMinSeqReq) (*SetMsgMinSeqResp, error)
// 设置消息是否发送成功-针对api发送的消息
SetSendMsgStatus(context.Context, *SetSendMsgStatusReq) (*SetSendMsgStatusResp, error)
// 获取消息发送状态
GetSendMsgStatus(context.Context, *GetSendMsgStatusReq) (*GetSendMsgStatusResp, error)
GetSuperGroupMsg(context.Context, *GetSuperGroupMsgReq) (*GetSuperGroupMsgResp, error)
GetWriteDiffMsg(context.Context, *GetWriteDiffMsgReq) (*GetWriteDiffMsgResp, error)
// modify msg
// 修改消息
SetMessageReactionExtensions(context.Context, *SetMessageReactionExtensionsReq) (*SetMessageReactionExtensionsResp, error)
GetMessageListReactionExtensions(context.Context, *GetMessageListReactionExtensionsReq) (*GetMessageListReactionExtensionsResp, error)
AddMessageReactionExtensions(context.Context, *ModifyMessageReactionExtensionsReq) (*ModifyMessageReactionExtensionsResp, error)
@@ -2553,24 +2364,6 @@ func _Msg_ClearMsg_Handler(srv interface{}, ctx context.Context, dec func(interf
return interceptor(ctx, in, info, handler)
}
func _Msg_SetMsgMinSeq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SetMsgMinSeqReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MsgServer).SetMsgMinSeq(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/msg.msg/SetMsgMinSeq",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MsgServer).SetMsgMinSeq(ctx, req.(*SetMsgMinSeqReq))
}
return interceptor(ctx, in, info, handler)
}
func _Msg_SetSendMsgStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SetSendMsgStatusReq)
if err := dec(in); err != nil {
@@ -2607,42 +2400,6 @@ func _Msg_GetSendMsgStatus_Handler(srv interface{}, ctx context.Context, dec fun
return interceptor(ctx, in, info, handler)
}
func _Msg_GetSuperGroupMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetSuperGroupMsgReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MsgServer).GetSuperGroupMsg(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/msg.msg/GetSuperGroupMsg",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MsgServer).GetSuperGroupMsg(ctx, req.(*GetSuperGroupMsgReq))
}
return interceptor(ctx, in, info, handler)
}
func _Msg_GetWriteDiffMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetWriteDiffMsgReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MsgServer).GetWriteDiffMsg(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/msg.msg/GetWriteDiffMsg",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MsgServer).GetWriteDiffMsg(ctx, req.(*GetWriteDiffMsgReq))
}
return interceptor(ctx, in, info, handler)
}
func _Msg_SetMessageReactionExtensions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SetMessageReactionExtensionsReq)
if err := dec(in); err != nil {
@@ -2743,10 +2500,6 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
MethodName: "ClearMsg",
Handler: _Msg_ClearMsg_Handler,
},
{
MethodName: "SetMsgMinSeq",
Handler: _Msg_SetMsgMinSeq_Handler,
},
{
MethodName: "SetSendMsgStatus",
Handler: _Msg_SetSendMsgStatus_Handler,
@@ -2755,14 +2508,6 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
MethodName: "GetSendMsgStatus",
Handler: _Msg_GetSendMsgStatus_Handler,
},
{
MethodName: "GetSuperGroupMsg",
Handler: _Msg_GetSuperGroupMsg_Handler,
},
{
MethodName: "GetWriteDiffMsg",
Handler: _Msg_GetWriteDiffMsg_Handler,
},
{
MethodName: "SetMessageReactionExtensions",
Handler: _Msg_SetMessageReactionExtensions_Handler,
@@ -2784,113 +2529,107 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
Metadata: "msg/msg.proto",
}
func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_4f5a59ae8be91efc) }
func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_9bd9d9abca588885) }
var fileDescriptor_msg_4f5a59ae8be91efc = []byte{
// 1672 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6e, 0xdb, 0xc6,
0x16, 0x06, 0x49, 0x4b, 0xb6, 0x8f, 0xec, 0xd8, 0x19, 0x3b, 0xbe, 0x0a, 0x63, 0x20, 0x0a, 0xf3,
0xa7, 0xdc, 0x24, 0x32, 0xae, 0xef, 0x05, 0x72, 0xd1, 0x14, 0x68, 0xe2, 0xc8, 0x55, 0x8c, 0x94,
0x75, 0x4c, 0xb9, 0x2d, 0xd0, 0x2e, 0x1c, 0x46, 0x1a, 0x33, 0x84, 0x25, 0x92, 0xe6, 0x50, 0xb1,
0xd5, 0xbf, 0x5d, 0x8b, 0x02, 0x45, 0x16, 0x5d, 0x76, 0xd5, 0x5d, 0x77, 0x7d, 0x88, 0x3e, 0x40,
0xd1, 0x07, 0xe9, 0x33, 0xb4, 0x28, 0x66, 0x86, 0x92, 0x86, 0x7f, 0x16, 0x2d, 0x17, 0x41, 0x0a,
0x74, 0xa7, 0x99, 0x39, 0x73, 0xe6, 0xfb, 0xce, 0xf9, 0xe6, 0x87, 0x47, 0x30, 0xdf, 0x25, 0xd6,
0x5a, 0x97, 0x58, 0x35, 0xcf, 0x77, 0x03, 0x17, 0x29, 0x5d, 0x62, 0xa9, 0xd5, 0x6d, 0x0f, 0x3b,
0x77, 0xb7, 0xf4, 0xbb, 0x4d, 0xec, 0xbf, 0xc4, 0xfe, 0x9a, 0x77, 0x60, 0xad, 0xb1, 0xe1, 0x35,
0xd2, 0x3e, 0xd8, 0x3b, 0x22, 0x6b, 0x47, 0x84, 0x9b, 0xab, 0xb5, 0xb1, 0x96, 0xbe, 0xe9, 0x79,
0xd8, 0x0f, 0xed, 0xb5, 0xcf, 0xa0, 0xa4, 0x13, 0xab, 0x6e, 0x06, 0xe6, 0xae, 0xab, 0xef, 0xa0,
0x65, 0x28, 0x04, 0xee, 0x01, 0x76, 0xca, 0x52, 0x45, 0xaa, 0xce, 0x1a, 0xbc, 0x81, 0x2a, 0x50,
0x72, 0x3d, 0xec, 0x9b, 0x81, 0xed, 0x3a, 0x5b, 0xf5, 0xb2, 0xcc, 0xc6, 0xc4, 0x2e, 0xf4, 0x3f,
0x98, 0xee, 0x72, 0x37, 0x65, 0xa5, 0x22, 0x55, 0x4b, 0xeb, 0x6a, 0x8d, 0x30, 0x00, 0x7b, 0xa6,
0x67, 0xef, 0x79, 0xa6, 0x6f, 0x76, 0x49, 0x2d, 0x5c, 0xc8, 0x18, 0x98, 0x6a, 0x58, 0x58, 0xbc,
0xbe, 0x21, 0x3a, 0x91, 0x72, 0x3b, 0x19, 0x0f, 0x4e, 0x7b, 0x25, 0xc1, 0xc2, 0xd3, 0x1e, 0x79,
0x21, 0x12, 0xad, 0x40, 0x69, 0x5b, 0x98, 0xc5, 0xe9, 0x8a, 0x5d, 0x22, 0x1a, 0x39, 0x3f, 0x1a,
0x0d, 0xe6, 0xbc, 0x1e, 0x79, 0xb1, 0xeb, 0x7e, 0x40, 0xb0, 0xbf, 0x55, 0x67, 0xd1, 0x98, 0x35,
0x22, 0x7d, 0xda, 0x8f, 0x12, 0xa0, 0x11, 0x16, 0xd7, 0xb1, 0xdc, 0x8d, 0xbe, 0xbe, 0x83, 0xca,
0x30, 0xdd, 0x31, 0x49, 0xd0, 0xc4, 0x87, 0x0c, 0xce, 0x94, 0x31, 0x68, 0xa2, 0x6b, 0x30, 0x6f,
0x5a, 0x96, 0x8f, 0xad, 0x28, 0xc9, 0x68, 0x27, 0x5a, 0x87, 0x52, 0x17, 0x13, 0x62, 0x5a, 0xf8,
0x3d, 0x9b, 0x04, 0x65, 0xa5, 0xa2, 0x54, 0x4b, 0xeb, 0x8b, 0x35, 0x2a, 0x25, 0x81, 0xb9, 0x21,
0x1a, 0xa1, 0x55, 0x98, 0x0d, 0x7c, 0xdb, 0xb2, 0x18, 0xd6, 0x29, 0xe6, 0x75, 0xd4, 0xa1, 0xbd,
0x0f, 0xa8, 0x81, 0x03, 0xdd, 0x3c, 0x7e, 0xe8, 0xb4, 0x75, 0xdb, 0x69, 0xe2, 0x43, 0x03, 0x1f,
0xa2, 0x15, 0x28, 0x86, 0xe4, 0x78, 0xd4, 0xc2, 0x56, 0x3c, 0xa4, 0x72, 0x22, 0xa4, 0xda, 0x11,
0x2c, 0x25, 0xfc, 0x11, 0x8f, 0x12, 0xdf, 0xf4, 0xfd, 0x47, 0x6e, 0x1b, 0x33, 0x8f, 0x05, 0x63,
0xd0, 0xa4, 0x4b, 0x6d, 0xfa, 0xbe, 0x4e, 0xac, 0xd0, 0x5b, 0xd8, 0xa2, 0xfd, 0xba, 0x79, 0x4c,
0x23, 0x45, 0xe3, 0x3b, 0x6f, 0x84, 0x2d, 0xd6, 0xcf, 0xfc, 0x32, 0x2e, 0xb4, 0x9f, 0xb5, 0xb4,
0x4f, 0x01, 0x9a, 0xd8, 0x69, 0xeb, 0xc4, 0xa2, 0x04, 0x5e, 0xaf, 0xc8, 0x7f, 0x90, 0xa0, 0x34,
0x5c, 0x9c, 0xb3, 0xc5, 0x51, 0xb6, 0x78, 0xc4, 0x16, 0x47, 0xd8, 0xf2, 0x16, 0x45, 0xc6, 0xd7,
0xd1, 0x89, 0x35, 0x4c, 0x93, 0xd8, 0x45, 0x2d, 0x5a, 0x1d, 0x1b, 0x3b, 0x01, 0xb7, 0x28, 0x70,
0x0b, 0xa1, 0x0b, 0xa9, 0x30, 0x43, 0xb0, 0xd3, 0xde, 0xb5, 0xbb, 0xb8, 0x5c, 0xac, 0x48, 0x55,
0xc5, 0x18, 0xb6, 0xb5, 0x16, 0x94, 0x1e, 0x75, 0xb0, 0xe9, 0x87, 0xe1, 0x59, 0x81, 0x62, 0x2f,
0x92, 0x5f, 0xde, 0xa2, 0x2e, 0x5c, 0x2f, 0xcc, 0x3c, 0x07, 0x38, 0x6c, 0xc7, 0x83, 0xa7, 0x24,
0x37, 0xe1, 0x03, 0x98, 0x1b, 0x2d, 0x32, 0x49, 0x18, 0xb4, 0xef, 0x25, 0x58, 0x68, 0x62, 0xca,
0x27, 0xa2, 0xc5, 0x54, 0xac, 0x65, 0x98, 0xb6, 0x7c, 0xb7, 0xe7, 0x0d, 0xa1, 0x0e, 0x9a, 0x74,
0x46, 0x97, 0x4b, 0x24, 0x94, 0x0e, 0x6f, 0xc5, 0x19, 0x4c, 0x25, 0xd3, 0x2f, 0xf2, 0x2f, 0x44,
0xf9, 0x6b, 0x75, 0x58, 0x8c, 0x42, 0x9b, 0x88, 0xe1, 0x36, 0x2c, 0x35, 0x71, 0x10, 0x8a, 0xa5,
0x19, 0x98, 0x41, 0x8f, 0x18, 0x49, 0x68, 0x52, 0x12, 0xda, 0x0a, 0x14, 0x09, 0x33, 0x67, 0x0e,
0x0b, 0x46, 0xd8, 0xd2, 0x1e, 0xc3, 0x72, 0xd2, 0xe1, 0x44, 0xd0, 0xee, 0xb1, 0xad, 0x7b, 0x7a,
0x68, 0xda, 0x33, 0x58, 0x6e, 0xfc, 0x25, 0x10, 0x04, 0x92, 0x4a, 0x84, 0xe4, 0x57, 0x12, 0x2c,
0xd5, 0x71, 0xa7, 0xd9, 0xf3, 0xb0, 0xdf, 0xa0, 0x59, 0x0e, 0x75, 0x2c, 0xe6, 0x4b, 0x8a, 0xe9,
0x75, 0xa4, 0x1b, 0x39, 0x4b, 0x37, 0x4a, 0x54, 0x37, 0x63, 0xf5, 0x41, 0x83, 0x9d, 0x84, 0x31,
0x51, 0xb0, 0x5b, 0x3c, 0xd8, 0x71, 0x42, 0xe3, 0x75, 0xb0, 0x08, 0x0a, 0x55, 0xb6, 0xcc, 0x94,
0x4d, 0x7f, 0x66, 0x13, 0xd2, 0xbe, 0xe4, 0x89, 0x39, 0x3b, 0xdc, 0x09, 0xcf, 0xc5, 0xc7, 0xec,
0x72, 0xf9, 0xc8, 0xb7, 0x03, 0x5c, 0xb7, 0xf7, 0xf7, 0x27, 0xe7, 0xa8, 0x7d, 0xc1, 0xc2, 0x15,
0xf5, 0xf4, 0x1a, 0x89, 0x7c, 0x57, 0x00, 0x4d, 0x77, 0xdb, 0xf6, 0x7e, 0x5f, 0xe7, 0x37, 0xab,
0x81, 0xcd, 0x16, 0x05, 0xbb, 0x79, 0x1c, 0x60, 0x87, 0xd8, 0xae, 0x93, 0x73, 0x17, 0xd3, 0x33,
0xda, 0xed, 0xf9, 0x2d, 0x3c, 0x3a, 0x60, 0x07, 0xed, 0x88, 0x98, 0x95, 0xe4, 0xe1, 0x4b, 0x30,
0xa1, 0x0b, 0xed, 0xf6, 0x3d, 0xcc, 0xa4, 0x59, 0x30, 0xc4, 0x2e, 0x74, 0x0c, 0x17, 0xfc, 0x38,
0x28, 0xf6, 0x48, 0x28, 0xb0, 0x47, 0xc2, 0x06, 0x7f, 0x24, 0x8c, 0xe5, 0x50, 0x33, 0xd2, 0x9c,
0x6c, 0x3a, 0x81, 0xdf, 0x37, 0xd2, 0x17, 0x88, 0xdf, 0x4c, 0xc5, 0xe4, 0xcd, 0x74, 0x07, 0x64,
0x7c, 0x5c, 0x9e, 0x66, 0xf1, 0x5e, 0xad, 0x59, 0xae, 0x6b, 0x75, 0x30, 0x7f, 0x9c, 0x3e, 0xef,
0xed, 0xd7, 0x9a, 0x81, 0x6f, 0x3b, 0xd6, 0x87, 0x66, 0xa7, 0x87, 0x0d, 0x19, 0x1f, 0xa3, 0x07,
0x30, 0x67, 0x06, 0x81, 0xd9, 0x7a, 0x81, 0xdb, 0x5b, 0xce, 0xbe, 0x5b, 0x9e, 0xc9, 0x31, 0x2f,
0x32, 0x83, 0xca, 0xc2, 0x26, 0x8c, 0x48, 0x79, 0xb6, 0x22, 0x55, 0x67, 0x8c, 0x41, 0x13, 0xad,
0xc3, 0xb2, 0x4d, 0x28, 0x7c, 0xdf, 0x31, 0x3b, 0x23, 0xe2, 0x65, 0x60, 0x66, 0xa9, 0x63, 0xa8,
0x06, 0xa8, 0x4b, 0xac, 0x77, 0x6d, 0x9f, 0x04, 0x3c, 0x7e, 0xec, 0x86, 0x2d, 0xb1, 0x1b, 0x36,
0x65, 0x44, 0xc5, 0xa0, 0x66, 0x07, 0x91, 0x6a, 0xfb, 0x00, 0xf7, 0x43, 0x6d, 0xd0, 0x9f, 0xe8,
0x3f, 0x50, 0x78, 0x49, 0x49, 0x84, 0x6f, 0xd0, 0x4b, 0x29, 0x82, 0x7c, 0x82, 0xfb, 0x9c, 0x27,
0xb7, 0x7c, 0x4b, 0xfe, 0xbf, 0xa4, 0x7d, 0x5b, 0x80, 0xcb, 0xf4, 0x42, 0x7a, 0x53, 0x05, 0xd9,
0x3b, 0x59, 0x90, 0xef, 0x30, 0x41, 0x8e, 0x21, 0xf0, 0x8f, 0x1a, 0xff, 0x2e, 0x6a, 0xfc, 0x4d,
0x82, 0xca, 0xc9, 0xc9, 0x9c, 0xf4, 0x5d, 0x2c, 0x66, 0x53, 0x49, 0x66, 0x33, 0x3d, 0x1e, 0x53,
0x59, 0xf1, 0x10, 0xb3, 0x51, 0x88, 0x66, 0xe3, 0x16, 0x14, 0x7d, 0x4c, 0x7a, 0x9d, 0xa0, 0x5c,
0x64, 0x0a, 0x3d, 0xcf, 0x14, 0x3a, 0x24, 0x8b, 0x89, 0x67, 0x84, 0x06, 0xda, 0x1f, 0x32, 0x5c,
0x6d, 0x0c, 0xd9, 0xd2, 0x70, 0x9e, 0x61, 0xff, 0x65, 0xbe, 0xb8, 0xc5, 0xbd, 0xa9, 0xc4, 0xf6,
0xe6, 0xf8, 0xfd, 0x47, 0x60, 0xa5, 0x1b, 0xcd, 0xc6, 0x13, 0xdc, 0x17, 0x36, 0xe0, 0x7d, 0x46,
0x2f, 0x07, 0x8b, 0x9a, 0x9e, 0x70, 0x63, 0x64, 0xb8, 0x56, 0xf7, 0x01, 0x25, 0xad, 0xe3, 0x59,
0x94, 0xf2, 0x66, 0x51, 0xce, 0xca, 0xa2, 0xf6, 0x93, 0x04, 0xd7, 0xc6, 0x43, 0x9f, 0x48, 0x72,
0x4d, 0x58, 0x22, 0xb6, 0x63, 0x75, 0xf0, 0x90, 0x08, 0xd3, 0x04, 0xff, 0xd6, 0xbe, 0xc2, 0x4f,
0x2d, 0x71, 0x7c, 0xb8, 0x20, 0x37, 0x34, 0xd2, 0x66, 0x6b, 0xbf, 0xc8, 0xb0, 0x7a, 0xd2, 0xac,
0x09, 0x70, 0xfa, 0x59, 0xe7, 0x2b, 0x47, 0xfa, 0xf6, 0x58, 0xa4, 0x67, 0x3f, 0x5c, 0xa7, 0x12,
0x89, 0x7c, 0x5d, 0xc7, 0xcd, 0xcf, 0x12, 0x5c, 0x1d, 0xfb, 0x98, 0x99, 0xf0, 0x81, 0x58, 0x22,
0xbd, 0x56, 0x0b, 0x13, 0x22, 0x04, 0x13, 0xb1, 0x60, 0x32, 0xdf, 0x83, 0x8f, 0x7c, 0x43, 0x34,
0x43, 0xeb, 0x00, 0xfb, 0xa6, 0xdd, 0xc1, 0x6d, 0x36, 0x69, 0x2a, 0x73, 0x92, 0x60, 0xa5, 0xfd,
0x2e, 0xc3, 0x8d, 0x3a, 0xee, 0xe0, 0x00, 0xbf, 0xd1, 0xe7, 0xc8, 0xf8, 0xc2, 0x43, 0xd6, 0x35,
0x56, 0x3c, 0xf5, 0x35, 0x36, 0x9d, 0x79, 0x6c, 0xef, 0x64, 0xa9, 0x7d, 0x86, 0xc5, 0xfa, 0x44,
0xdd, 0xa4, 0xcf, 0xd4, 0xbe, 0x96, 0xe0, 0x66, 0xae, 0xf8, 0x4f, 0xa4, 0xa3, 0x53, 0xdc, 0x26,
0x2e, 0xcc, 0x47, 0x54, 0x82, 0xee, 0xc0, 0x2c, 0x1e, 0x74, 0x84, 0x75, 0xd2, 0x73, 0x31, 0x31,
0x8d, 0x0c, 0x44, 0x6c, 0x72, 0x16, 0x36, 0x25, 0xf2, 0xf1, 0xf9, 0xab, 0x0c, 0xb3, 0x43, 0x57,
0x68, 0x2f, 0x2b, 0xb4, 0x12, 0x03, 0x7e, 0x2b, 0xba, 0xf2, 0xd9, 0x4f, 0x0d, 0x39, 0xef, 0xf1,
0xaf, 0x64, 0xaa, 0x41, 0x8b, 0x3d, 0xca, 0xf8, 0x41, 0x14, 0x7d, 0x76, 0x9d, 0x63, 0xcf, 0x3c,
0x2e, 0x57, 0x19, 0x1f, 0xab, 0x9f, 0x9c, 0xf2, 0x64, 0xba, 0x19, 0x3d, 0x99, 0x52, 0xf2, 0x27,
0x9c, 0x47, 0x7d, 0x98, 0x13, 0x87, 0xd0, 0x3d, 0x98, 0x39, 0x08, 0xdb, 0x61, 0x02, 0x4f, 0x54,
0xe8, 0xd0, 0x78, 0x82, 0x64, 0xbe, 0x92, 0x60, 0x49, 0x28, 0x35, 0xd3, 0x18, 0xb1, 0x5a, 0x73,
0xa2, 0xa2, 0x2c, 0xe5, 0xa8, 0x28, 0xcb, 0xa7, 0xae, 0x28, 0x2b, 0xb1, 0x8a, 0xf2, 0xfa, 0x37,
0x00, 0x4a, 0x97, 0x58, 0xe8, 0x19, 0x2c, 0xc4, 0x2a, 0xc1, 0xe8, 0x7a, 0x4a, 0x0c, 0x92, 0xd5,
0x67, 0xf5, 0x46, 0x1e, 0x33, 0xe2, 0x21, 0x17, 0x96, 0x9f, 0xf6, 0x3a, 0x9d, 0x70, 0xf7, 0x6e,
0xf4, 0x9b, 0xf8, 0x90, 0xe1, 0xfb, 0x77, 0xca, 0xfc, 0x34, 0x43, 0xba, 0xd6, 0xed, 0xdc, 0xb6,
0x6c, 0x5f, 0x4e, 0x87, 0x55, 0x2e, 0xb4, 0x10, 0x7e, 0xbe, 0x0c, 0x2a, 0xce, 0xea, 0x62, 0xb4,
0x83, 0x78, 0x68, 0x07, 0xa0, 0x8e, 0x3b, 0x3a, 0xb1, 0xf8, 0x26, 0x48, 0x59, 0x68, 0x34, 0x4c,
0x3d, 0x5c, 0x19, 0x63, 0x41, 0x3c, 0xd4, 0x80, 0xc5, 0x78, 0xfd, 0x09, 0x95, 0xd9, 0xc2, 0x29,
0xd5, 0x31, 0xf5, 0x62, 0xc6, 0x08, 0xf1, 0xd0, 0x1a, 0xcc, 0x0c, 0x4a, 0xb5, 0x88, 0x23, 0x17,
0xca, 0xc3, 0xea, 0xf9, 0x58, 0x0f, 0xf1, 0xd0, 0x7d, 0x98, 0x13, 0xab, 0x9f, 0x68, 0x79, 0xf8,
0xf9, 0x26, 0xd4, 0x6a, 0xd5, 0x0b, 0x29, 0xbd, 0x1c, 0x76, 0xbc, 0x46, 0x19, 0xc2, 0x4e, 0xa9,
0x85, 0x86, 0xb0, 0x53, 0x8b, 0x9a, 0x0d, 0x58, 0x6c, 0xa4, 0x3b, 0x6a, 0x64, 0x3a, 0x6a, 0x9c,
0xe0, 0x28, 0x25, 0x90, 0x29, 0x55, 0x39, 0xc1, 0x51, 0x22, 0x90, 0x75, 0xa6, 0x72, 0xb1, 0x30,
0x85, 0xfe, 0x35, 0xb0, 0x8e, 0x15, 0xbe, 0xd4, 0x72, 0xfa, 0x00, 0xf1, 0xd0, 0x01, 0xac, 0x9e,
0xf4, 0xf1, 0x84, 0xae, 0xe5, 0xf9, 0x58, 0x56, 0xaf, 0xe7, 0xb0, 0x22, 0x1e, 0x3a, 0x82, 0xca,
0xb8, 0xa7, 0x33, 0xaa, 0xe6, 0xfd, 0x38, 0x50, 0x6f, 0xe5, 0xb4, 0x24, 0x1e, 0x3a, 0x84, 0xd5,
0x87, 0xed, 0x76, 0x36, 0xcb, 0x9b, 0x39, 0x6b, 0x54, 0x6a, 0x35, 0x9f, 0x21, 0xf1, 0xd0, 0xe7,
0x70, 0x39, 0x72, 0xc5, 0xa7, 0xac, 0x7a, 0x7b, 0xb0, 0x4b, 0x72, 0x3c, 0xc4, 0xd4, 0x3b, 0xf9,
0x8d, 0x89, 0xb7, 0x71, 0xe9, 0xe3, 0x8b, 0xdb, 0x1e, 0x76, 0xf6, 0xb6, 0x74, 0xe1, 0x4f, 0xda,
0x2e, 0xb1, 0xee, 0x77, 0x89, 0xf5, 0xbc, 0xc8, 0x9a, 0xff, 0xfd, 0x33, 0x00, 0x00, 0xff, 0xff,
0xd4, 0xae, 0xa9, 0xee, 0x0d, 0x1e, 0x00, 0x00,
var fileDescriptor_msg_9bd9d9abca588885 = []byte{
// 1569 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6e, 0xdb, 0x46,
0x10, 0x06, 0x49, 0x4b, 0xb6, 0x47, 0x76, 0xec, 0xac, 0x1d, 0x43, 0x61, 0x8d, 0x46, 0x65, 0x92,
0x5a, 0x41, 0x62, 0x19, 0x70, 0x8b, 0xfe, 0xa5, 0x40, 0x1b, 0x47, 0xae, 0x62, 0xa4, 0x6c, 0x12,
0xca, 0x6d, 0x90, 0xe6, 0x90, 0x32, 0xd6, 0x9a, 0x21, 0xcc, 0x3f, 0x73, 0xa9, 0x58, 0x02, 0x7a,
0xe9, 0xa1, 0xbd, 0xf5, 0x35, 0x7a, 0xeb, 0x43, 0xe4, 0x09, 0xfa, 0x20, 0x3d, 0x15, 0xe8, 0xb9,
0x2d, 0x76, 0xb9, 0xa2, 0xf8, 0x2b, 0xd1, 0x0a, 0x02, 0xe4, 0xd0, 0x9b, 0x67, 0x76, 0x76, 0x7e,
0xbf, 0x19, 0x2d, 0xc7, 0xb0, 0x6c, 0x13, 0x63, 0xc7, 0x26, 0x46, 0xcb, 0xf3, 0xdd, 0xc0, 0x45,
0x92, 0x4d, 0x0c, 0x79, 0xeb, 0x81, 0x87, 0x9d, 0xed, 0x03, 0x75, 0xbb, 0x8b, 0xfd, 0x97, 0xd8,
0xdf, 0xf1, 0x4e, 0x8c, 0x1d, 0x76, 0xbc, 0x43, 0x7a, 0x27, 0x67, 0x64, 0xe7, 0x8c, 0x84, 0xd2,
0xf2, 0xf6, 0x34, 0x41, 0x5f, 0xf7, 0x3c, 0xec, 0x73, 0x71, 0xc5, 0x85, 0x9a, 0x4a, 0x8c, 0xb6,
0x1e, 0xe8, 0x87, 0xae, 0xfa, 0x08, 0xad, 0x43, 0x25, 0x70, 0x4f, 0xb0, 0x53, 0x17, 0x1a, 0x42,
0x73, 0x51, 0x0b, 0x09, 0xd4, 0x80, 0x9a, 0xeb, 0x61, 0x5f, 0x0f, 0x4c, 0xd7, 0x39, 0x68, 0xd7,
0x45, 0x76, 0x16, 0x67, 0xa1, 0x26, 0xcc, 0xdb, 0xa1, 0x9a, 0xba, 0xd4, 0x10, 0x9a, 0xb5, 0xdd,
0x0b, 0x2d, 0x66, 0xae, 0xc5, 0x95, 0x6b, 0xa3, 0x63, 0xe5, 0x49, 0xcc, 0x60, 0x7b, 0x2f, 0x7e,
0x51, 0x98, 0x78, 0x71, 0xba, 0x13, 0xca, 0x4f, 0x02, 0xac, 0x3c, 0xec, 0x93, 0x17, 0xf1, 0x80,
0x1a, 0x50, 0x7b, 0x10, 0xbb, 0x15, 0x86, 0x15, 0x67, 0xc5, 0x3d, 0x10, 0x27, 0x7b, 0xa0, 0xc0,
0x92, 0xd7, 0x27, 0x2f, 0x0e, 0xdd, 0x6f, 0x09, 0xf6, 0x0f, 0xda, 0x2c, 0xd2, 0x45, 0x2d, 0xc1,
0x53, 0x7e, 0x13, 0x00, 0x8d, 0xed, 0xbb, 0x8e, 0xe1, 0xee, 0x0d, 0xd5, 0x47, 0xa8, 0x0e, 0xf3,
0x96, 0x4e, 0x82, 0x2e, 0x3e, 0x65, 0x2e, 0xcc, 0x69, 0x23, 0x12, 0x5d, 0x83, 0x65, 0xdd, 0x30,
0x7c, 0x6c, 0x24, 0x03, 0x4b, 0x32, 0xd1, 0x2e, 0xd4, 0x6c, 0x4c, 0x88, 0x6e, 0xe0, 0xaf, 0x4d,
0x12, 0xd4, 0xa5, 0x86, 0xd4, 0xac, 0xed, 0xae, 0xb6, 0x28, 0x48, 0x62, 0xd1, 0x6a, 0x71, 0x21,
0xb4, 0x09, 0x8b, 0x81, 0x6f, 0x1a, 0x06, 0xf3, 0x75, 0x8e, 0x69, 0x1d, 0x33, 0x94, 0x6f, 0x00,
0x75, 0x70, 0xa0, 0xea, 0x83, 0x3b, 0x4e, 0x4f, 0x35, 0x9d, 0x2e, 0x3e, 0xd5, 0xf0, 0x29, 0xda,
0x80, 0x2a, 0x0f, 0x2e, 0xcc, 0x14, 0xa7, 0xd2, 0x69, 0x14, 0x33, 0x69, 0x54, 0xce, 0x60, 0x2d,
0xa3, 0x8f, 0x78, 0x34, 0xf0, 0x7d, 0xdf, 0xbf, 0xeb, 0xf6, 0x30, 0xd3, 0x58, 0xd1, 0x46, 0x24,
0x35, 0xb5, 0xef, 0xfb, 0x2a, 0x31, 0xb8, 0x36, 0x4e, 0x51, 0xbe, 0xaa, 0x0f, 0x68, 0xa6, 0x68,
0x7e, 0x97, 0x35, 0x4e, 0x31, 0x3e, 0xd3, 0xcb, 0x62, 0xa1, 0x7c, 0x46, 0x29, 0x1f, 0x01, 0x74,
0xb1, 0xd3, 0x53, 0x89, 0x41, 0x03, 0x28, 0x0f, 0x44, 0x1b, 0x6a, 0xd1, 0x3d, 0xe2, 0xd1, 0x08,
0x09, 0xeb, 0x18, 0x95, 0x18, 0x51, 0xbe, 0xe2, 0x2c, 0x2a, 0x71, 0x64, 0x99, 0xd8, 0x09, 0x42,
0x89, 0x4a, 0x28, 0x11, 0x63, 0x21, 0x19, 0x16, 0x08, 0x76, 0x7a, 0x87, 0xa6, 0x8d, 0xeb, 0xd5,
0x86, 0xd0, 0x94, 0xb4, 0x88, 0x56, 0xae, 0x43, 0xed, 0xae, 0x85, 0x75, 0x9f, 0xfb, 0xb9, 0x01,
0xd5, 0x7e, 0x22, 0xd1, 0x21, 0xa5, 0x5c, 0x80, 0xa5, 0xb1, 0x18, 0xf1, 0x94, 0xa7, 0xb0, 0xd2,
0xc5, 0x54, 0x7d, 0xa2, 0x46, 0x79, 0x57, 0x69, 0xaa, 0x0d, 0xdf, 0xed, 0x7b, 0x51, 0x7d, 0x46,
0x24, 0xbd, 0x61, 0x87, 0xa9, 0xe3, 0x29, 0x0d, 0x29, 0x05, 0xc1, 0x6a, 0x52, 0x39, 0xf1, 0x94,
0x6d, 0x58, 0xeb, 0xe2, 0x80, 0x67, 0xa6, 0x1b, 0xe8, 0x41, 0x9f, 0x70, 0xa3, 0x84, 0x11, 0x4c,
0x77, 0x45, 0xe3, 0x94, 0xb2, 0x01, 0xeb, 0x59, 0x71, 0xe2, 0x29, 0x1f, 0x33, 0x38, 0x64, 0xd4,
0xa4, 0x9a, 0x58, 0xc8, 0x36, 0xf1, 0x0f, 0xb0, 0xde, 0xc9, 0x51, 0x48, 0xa3, 0xc3, 0x49, 0x20,
0xe1, 0x31, 0x90, 0x70, 0x02, 0x48, 0x38, 0x02, 0x12, 0x77, 0x59, 0x4a, 0xb8, 0xdc, 0x81, 0xb5,
0x36, 0xb6, 0xba, 0x7d, 0x0f, 0xfb, 0x1d, 0x9a, 0xa0, 0x4c, 0x45, 0xc4, 0xa2, 0xb4, 0x4a, 0x89,
0xb4, 0xd2, 0xd8, 0xb3, 0x8a, 0x88, 0xa7, 0x1c, 0x85, 0xb1, 0xa7, 0x0d, 0x4c, 0x8d, 0x1d, 0xad,
0x82, 0x44, 0x8b, 0x24, 0xb2, 0x22, 0xd1, 0x3f, 0x27, 0x18, 0xf7, 0xc3, 0x3c, 0xa5, 0x8d, 0xcf,
0x90, 0xa7, 0xf2, 0x2d, 0x73, 0x8f, 0xcd, 0x8c, 0xc7, 0xbe, 0x19, 0xe0, 0xb6, 0x79, 0x7c, 0x3c,
0x7b, 0x5c, 0xca, 0x29, 0x4b, 0x51, 0x52, 0xd3, 0x1b, 0x76, 0xfe, 0xe7, 0x0a, 0x28, 0xaa, 0xdb,
0x33, 0x8f, 0x87, 0x6a, 0x38, 0x24, 0x35, 0xac, 0x1f, 0x51, 0x07, 0xf7, 0x07, 0x01, 0x76, 0x88,
0xe9, 0x3a, 0xe5, 0x10, 0xca, 0xba, 0xdc, 0xed, 0xfb, 0x47, 0x38, 0x82, 0x4a, 0x44, 0xd3, 0x33,
0xd7, 0x4b, 0xfc, 0x3c, 0x44, 0x74, 0x38, 0x61, 0x08, 0x35, 0x74, 0x38, 0xf4, 0x30, 0x9b, 0x30,
0x15, 0x2d, 0xce, 0x42, 0x03, 0xb8, 0xe4, 0xa7, 0x9d, 0x62, 0xf3, 0xbe, 0xc2, 0xe6, 0xfd, 0x5e,
0x38, 0xef, 0xa7, 0xc6, 0xd0, 0xd2, 0xf2, 0x94, 0xec, 0x3b, 0x81, 0x3f, 0xd4, 0xf2, 0x0d, 0xa4,
0x67, 0x5b, 0x35, 0x3b, 0xdb, 0x6e, 0x81, 0x88, 0x07, 0xf5, 0x79, 0x96, 0xe3, 0xcd, 0x96, 0xe1,
0xba, 0x86, 0x85, 0xc3, 0x37, 0xc4, 0xf3, 0xfe, 0x71, 0xab, 0x1b, 0xf8, 0xa6, 0x63, 0x7c, 0xa7,
0x5b, 0x7d, 0xac, 0x89, 0x78, 0x80, 0xbe, 0x84, 0x25, 0x3d, 0x08, 0xf4, 0xa3, 0x17, 0xb8, 0x77,
0xe0, 0x1c, 0xbb, 0xf5, 0x85, 0x12, 0xf7, 0x12, 0x37, 0x28, 0x14, 0x4c, 0xc2, 0x02, 0xa9, 0x2f,
0x36, 0x84, 0xe6, 0x82, 0x36, 0x22, 0xd1, 0x2e, 0xac, 0x9b, 0x84, 0xba, 0xef, 0x3b, 0xba, 0x35,
0x0e, 0xbc, 0x0e, 0x4c, 0x2c, 0xf7, 0x0c, 0xb5, 0x00, 0xd9, 0xc4, 0xf8, 0xca, 0xf4, 0x49, 0x10,
0xe6, 0x8f, 0xcd, 0xe8, 0x1a, 0x9b, 0xd1, 0x39, 0x27, 0xf2, 0x13, 0x90, 0x8b, 0x93, 0x48, 0xf1,
0x7c, 0x82, 0x87, 0x1c, 0x1b, 0xf4, 0x4f, 0x74, 0x1d, 0x2a, 0x2f, 0x69, 0x10, 0xfc, 0x09, 0xb1,
0xc2, 0x41, 0x78, 0x1f, 0x0f, 0xc3, 0xd8, 0xc2, 0xd3, 0xcf, 0xc4, 0x4f, 0x04, 0xe5, 0xdf, 0x39,
0xb8, 0x42, 0xa7, 0xee, 0xdb, 0x0a, 0xc2, 0xfe, 0x64, 0x10, 0x7e, 0xc1, 0x40, 0x38, 0x25, 0x80,
0xff, 0x11, 0xf8, 0x36, 0x23, 0xf0, 0x4f, 0x01, 0x1a, 0x93, 0x0b, 0x38, 0xd3, 0x28, 0x4e, 0x55,
0x50, 0xca, 0x56, 0x30, 0x3f, 0x07, 0x73, 0x45, 0x39, 0x88, 0x57, 0xa0, 0x92, 0xac, 0xc0, 0x0d,
0xa8, 0xfa, 0x98, 0xf4, 0xad, 0xa0, 0x5e, 0x65, 0xa8, 0xbc, 0xc8, 0x50, 0x19, 0x05, 0x8b, 0x89,
0xa7, 0x71, 0x01, 0xe5, 0x1f, 0x11, 0xae, 0x76, 0xa2, 0x68, 0x69, 0x0a, 0x5f, 0xa3, 0xe7, 0xa2,
0xbe, 0x12, 0x53, 0x7d, 0x15, 0xef, 0x47, 0x29, 0xd5, 0x8f, 0xd3, 0x7b, 0x8e, 0xc0, 0x86, 0x9d,
0xac, 0xc6, 0x7d, 0x3c, 0x8c, 0x35, 0xdd, 0x6d, 0x16, 0x5e, 0x89, 0x28, 0x5a, 0x6a, 0x46, 0x8d,
0x56, 0xa0, 0x5a, 0x3e, 0x06, 0x94, 0x95, 0x4e, 0x57, 0x51, 0x28, 0x5b, 0x45, 0xb1, 0xa8, 0x8a,
0xca, 0xef, 0x02, 0x5c, 0x9b, 0xee, 0xfa, 0x4c, 0x90, 0xeb, 0xc2, 0x1a, 0x31, 0x1d, 0xc3, 0xc2,
0x51, 0x20, 0x0c, 0x13, 0xe1, 0xe7, 0xd1, 0x7b, 0xe1, 0xa4, 0x8a, 0x9f, 0x47, 0x06, 0x43, 0x41,
0x2d, 0xef, 0xb6, 0xf2, 0x4a, 0x84, 0xcd, 0x49, 0xb7, 0x66, 0xf0, 0xd3, 0x2f, 0x9a, 0xa9, 0xa1,
0xa7, 0x9f, 0x4f, 0xf5, 0xf4, 0xf5, 0x07, 0xea, 0x5c, 0xa6, 0x90, 0x6f, 0x72, 0xc4, 0xbc, 0x12,
0xe0, 0xea, 0xd4, 0x87, 0xca, 0x4c, 0x25, 0xff, 0x10, 0x6a, 0xa4, 0x7f, 0x74, 0x84, 0x09, 0x89,
0x25, 0x10, 0xb1, 0x04, 0x32, 0xdd, 0xa3, 0x0f, 0x3a, 0x2d, 0x2e, 0x86, 0x76, 0x01, 0x8e, 0x75,
0xd3, 0xc2, 0x3d, 0x76, 0x69, 0xae, 0xf0, 0x52, 0x4c, 0x4a, 0xf9, 0x4b, 0x84, 0xf7, 0xdb, 0xd8,
0xc2, 0x01, 0x7e, 0xab, 0x67, 0xc7, 0xf4, 0xcf, 0xd2, 0xa2, 0x9f, 0xab, 0xea, 0xb9, 0x7f, 0xae,
0xe6, 0x0b, 0x47, 0xf5, 0x7e, 0x11, 0xc2, 0x17, 0x58, 0xae, 0x33, 0x58, 0xc9, 0x97, 0x56, 0x7e,
0x11, 0x60, 0xab, 0x54, 0xce, 0x67, 0xc2, 0xce, 0x39, 0x7e, 0x35, 0x5c, 0x58, 0x4e, 0x20, 0x03,
0xdd, 0x82, 0x45, 0x3c, 0x62, 0x44, 0xab, 0xaa, 0x24, 0x80, 0xc6, 0x02, 0x71, 0xdf, 0xc4, 0x22,
0xdf, 0xa4, 0xb8, 0x6f, 0xca, 0x1f, 0x22, 0x2c, 0x46, 0xaa, 0xd0, 0xb3, 0xa2, 0x74, 0x0a, 0xcc,
0xf1, 0x1b, 0x49, 0xcb, 0xaf, 0x3f, 0x1d, 0xc4, 0xb2, 0x63, 0x5e, 0x2a, 0x44, 0x80, 0x92, 0x7a,
0x70, 0x85, 0x03, 0x27, 0xf9, 0xa4, 0xba, 0xc0, 0x9e, 0x70, 0x21, 0x44, 0x45, 0x3c, 0x90, 0x9f,
0x9e, 0x73, 0x02, 0x6d, 0x25, 0x27, 0x50, 0x4e, 0xfd, 0x62, 0x33, 0xc8, 0x86, 0xa5, 0xf8, 0x11,
0xba, 0x09, 0x0b, 0x27, 0x9c, 0xe6, 0x05, 0xcc, 0xa0, 0x32, 0x12, 0x98, 0xa1, 0x80, 0xbf, 0x0a,
0xb0, 0x16, 0xdb, 0xfc, 0xd1, 0xbc, 0xb0, 0xd5, 0x5f, 0x66, 0xc1, 0x27, 0x94, 0x58, 0xf0, 0x89,
0xe7, 0x5e, 0xf0, 0x49, 0xa9, 0x05, 0xdf, 0xee, 0xdf, 0xf3, 0x20, 0xd9, 0xc4, 0x40, 0xf7, 0x60,
0x25, 0xb5, 0x98, 0x43, 0x97, 0x79, 0xdc, 0xd9, 0x05, 0xa0, 0x2c, 0x17, 0x1d, 0x11, 0x0f, 0x3d,
0x86, 0xf5, 0x87, 0x7d, 0xcb, 0xe2, 0x9d, 0xb9, 0x37, 0xec, 0xe2, 0x53, 0xe6, 0xc7, 0xbb, 0xfc,
0x4e, 0xde, 0x21, 0xd5, 0x79, 0x65, 0xe2, 0x39, 0xeb, 0xad, 0x79, 0xbe, 0xf0, 0x41, 0x2b, 0xfc,
0xf3, 0x62, 0xb4, 0xd0, 0x93, 0x57, 0x93, 0x0c, 0xe2, 0xa1, 0x4f, 0x01, 0xda, 0xd8, 0x52, 0x89,
0xc1, 0x8c, 0xaf, 0x73, 0xe5, 0x63, 0x16, 0xbd, 0x75, 0x29, 0x87, 0x4b, 0x3c, 0xd4, 0x81, 0xd5,
0xf4, 0xc6, 0x06, 0xd5, 0x99, 0x81, 0x9c, 0x8d, 0x90, 0x7c, 0xb9, 0xe0, 0x84, 0x78, 0x68, 0x07,
0x16, 0x46, 0x6b, 0x3a, 0x14, 0x7a, 0x18, 0x5b, 0xee, 0xc9, 0x17, 0x53, 0x9c, 0xd0, 0x72, 0x7a,
0x4f, 0xc6, 0x2d, 0xe7, 0x6c, 0xdb, 0xb8, 0xe5, 0xbc, 0xc5, 0x1a, 0x55, 0xd4, 0xc9, 0x57, 0xd4,
0x29, 0x54, 0x94, 0xbb, 0x50, 0x3b, 0x81, 0xcd, 0x49, 0x1f, 0x01, 0xe8, 0x5a, 0x99, 0x0f, 0x3d,
0xf9, 0x7a, 0x09, 0x29, 0xe2, 0xa1, 0x33, 0x68, 0x4c, 0x7b, 0x02, 0xa2, 0x66, 0xd9, 0x47, 0xae,
0x7c, 0xa3, 0xa4, 0x24, 0xf1, 0xd0, 0x29, 0x6c, 0xde, 0xe9, 0xf5, 0x8a, 0xa3, 0xdc, 0x2a, 0xb9,
0x53, 0x91, 0x9b, 0xe5, 0x04, 0x89, 0x87, 0x7e, 0x84, 0x2b, 0x89, 0x9f, 0xb0, 0x1c, 0xab, 0x37,
0x47, 0xc8, 0x2a, 0xf1, 0xb8, 0x90, 0x6f, 0x95, 0x17, 0x26, 0xde, 0xde, 0x3b, 0xdf, 0x5f, 0x7e,
0xe0, 0x61, 0xe7, 0xd9, 0x81, 0x1a, 0xfb, 0xd7, 0x8f, 0x4d, 0x8c, 0xdb, 0x36, 0x31, 0x9e, 0x57,
0x19, 0xf9, 0xc1, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb1, 0x5e, 0x2e, 0xb4, 0x62, 0x1a, 0x00,
0x00,
}
+16 -50
View File
@@ -30,26 +30,6 @@ message MsgDataToMongoByMQ{
}
//message PullMessageReq {
// string UserID = 1;
// int64 SeqBegin = 2;
// int64 SeqEnd = 3;
// string OperationID = 4;
//}
//
//message PullMessageResp {
// int32 ErrCode = 1;
// string ErrMsg = 2;
// int64 MaxSeq = 3;
// int64 MinSeq = 4;
// repeated GatherFormat SingleUserMsg = 5;
// repeated GatherFormat GroupUserMsg = 6;
//}
//message PullMessageBySeqListReq{
// string UserID = 1;
// string OperationID = 2;
// repeated int64 seqList =3;
//}
message GetMaxAndMinSeqReq {
string UserID = 1;
string OperationID = 2;
@@ -62,17 +42,10 @@ message GetMaxAndMinSeqResp {
}
message SendMsgReq {
string token =1;
string operationID = 2;
sdkws.MsgData msgData = 3;
sdkws.MsgData msgData = 3;
}
message SendMsgResp {
int32 errCode = 1;
string errMsg = 2;
string serverMsgID = 4;
string clientMsgID = 5;
int64 sendTime = 6;
@@ -80,37 +53,26 @@ message SendMsgResp {
message ClearMsgReq{
string userID = 1;
string opUserID = 2;
string operationID = 3;
string userID = 1;
}
message ClearMsgResp{
int32 errCode = 1;
string errMsg = 2;
}
message SetMsgMinSeqReq{
string userID = 1;
string groupID = 2;
uint32 minSeq = 3;
string operationID = 4;
string opUserID = 5;
}
message SetMsgMinSeqResp{
int32 errCode = 1;
string errMsg = 2;
}
message SetSendMsgStatusReq{
string operationID = 1;
int32 status = 2;
}
message SetSendMsgStatusResp{
int32 errCode = 1;
string errMsg = 2;
}
message GetSendMsgStatusReq{
@@ -123,14 +85,10 @@ message GetSendMsgStatusResp{
int32 status = 3;
}
message DelSuperGroupMsgReq{
string opUserID = 1;
string userID = 2;
string groupID = 3;
string operationID = 4;
}
message DelSuperGroupMsgResp{
int32 errCode = 1;
string errMsg = 2;
}
message GetSuperGroupMsgReq{
string operationID = 1;
@@ -267,19 +225,27 @@ message MsgDataToModifyByMQ{
service msg {
//seq
rpc GetMaxAndMinSeq(sdkws.GetMaxAndMinSeqReq) returns(sdkws.GetMaxAndMinSeqResp);
//
rpc PullMessageBySeqList(sdkws.PullMessageBySeqListReq) returns(sdkws.PullMessageBySeqListResp);
//
rpc SendMsg(SendMsgReq) returns(SendMsgResp);
//
rpc DelMsgList(sdkws.DelMsgListReq) returns(sdkws.DelMsgListResp);
//
rpc DelSuperGroupMsg(DelSuperGroupMsgReq) returns(DelSuperGroupMsgResp);
//
rpc ClearMsg(ClearMsgReq) returns(ClearMsgResp);
rpc SetMsgMinSeq(SetMsgMinSeqReq) returns(SetMsgMinSeqResp);
rpc SetSendMsgStatus(SetSendMsgStatusReq) returns(SetSendMsgStatusResp);
rpc GetSendMsgStatus(GetSendMsgStatusReq) returns(GetSendMsgStatusResp);
rpc GetSuperGroupMsg(GetSuperGroupMsgReq) returns(GetSuperGroupMsgResp);
rpc GetWriteDiffMsg(GetWriteDiffMsgReq) returns(GetWriteDiffMsgResp);
// modify msg
//-api发送的消息
rpc SetSendMsgStatus(SetSendMsgStatusReq) returns(SetSendMsgStatusResp);
//
rpc GetSendMsgStatus(GetSendMsgStatusReq) returns(GetSendMsgStatusResp);
//
rpc SetMessageReactionExtensions(SetMessageReactionExtensionsReq) returns(SetMessageReactionExtensionsResp);
rpc GetMessageListReactionExtensions(GetMessageListReactionExtensionsReq) returns(GetMessageListReactionExtensionsResp);
rpc AddMessageReactionExtensions(ModifyMessageReactionExtensionsReq) returns(ModifyMessageReactionExtensionsResp);
+321 -826
View File
File diff suppressed because it is too large Load Diff
-8
View File
@@ -132,7 +132,6 @@ message FriendRequest{
///////////////////////////////////base end/////////////////////////////////////
message PullMessageBySeqListReq{
string userID = 1;
string operationID = 2;
repeated uint32 seqList = 3;
map <string, seqList>groupSeqList = 4;
}
@@ -158,7 +157,6 @@ message PullMessageBySeqListResp {
message GetMaxAndMinSeqReq {
repeated string groupIDList = 1;
string userID = 2;
string operationID = 3;
}
message MaxAndMinSeq{
uint32 maxSeq = 1;
@@ -167,8 +165,6 @@ message MaxAndMinSeq{
message GetMaxAndMinSeqResp {
uint32 maxSeq = 1;
uint32 minSeq = 2;
int32 errCode = 3;
string errMsg = 4;
map<string, MaxAndMinSeq> groupMaxAndMinSeq = 5;
}
@@ -606,15 +602,11 @@ message SignalGetTokenByRoomIDReply {
message DelMsgListReq{
string opUserID = 1;
string userID = 2;
repeated uint32 seqList = 3;
string operationID = 4;
}
message DelMsgListResp{
int32 errCode = 1;
string errMsg = 2;
}
message SetAppBackgroundStatusReq {
+9 -1
View File
@@ -128,7 +128,13 @@ message userRegisterResp {
}
message getGlobalRecvMessageOptReq{
string userID = 1;
}
message getGlobalRecvMessageOptResp{
int32 globalRecvMsgOpt = 1;
}
service user {
//
@@ -137,8 +143,10 @@ service user {
rpc updateUserInfo(updateUserInfoReq) returns(updateUserInfoResp);
//
rpc setGlobalRecvMessageOpt(setGlobalRecvMessageOptReq) returns(setGlobalRecvMessageOptResp);
//
rpc getGlobalRecvMessageOpt(getGlobalRecvMessageOptReq) returns(getGlobalRecvMessageOptResp);
//userID是否存在
rpc accountCheck(accountCheckReq)returns(accountCheckResp);
rpc accountCheck(accountCheckReq) returns (accountCheckResp);
//userID
rpc getPaginationUsers(getPaginationUsersReq) returns (getPaginationUsersResp);
//
+21
View File
@@ -412,3 +412,24 @@ func (o *sortSlice[E]) Swap(i, j int) {
type Ordered interface {
~int | ~int8 | ~int16 | ~int32 | ~int64 | ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr | ~float32 | ~float64 | ~string
}
func Unwrap(err error) error {
for err != nil {
unwrap, ok := err.(interface {
Unwrap() error
})
if !ok {
break
}
err = unwrap.Unwrap()
}
return err
}
// NotNilReplace 当new_不为空时, 将old设置为new_
func NotNilReplace[T any](old, new_ *T) {
if old == nil || new_ == nil {
return
}
*old = *new_
}