From 00664822eccb2da8e8f848667c314d5b28e53f7f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 20 Apr 2022 18:47:21 +0800 Subject: [PATCH 01/57] conversation add fields --- internal/api/auth/auth.go | 2 +- internal/rpc/group/group.go | 41 ++++++++++++++++++- internal/rpc/user/user.go | 3 +- pkg/base_info/conversation_api_struct.go | 2 + pkg/common/db/model_struct.go | 2 + .../mysql_model/im_mysql_model/user_model.go | 3 +- pkg/utils/strings.go | 2 + 7 files changed, 51 insertions(+), 4 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index fed744d4f..0211d8524 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -86,6 +86,6 @@ func UserToken(c *gin.Context) { } resp := api.UserTokenResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}, UserToken: api.UserTokenInfo{UserID: req.FromUserID, Token: reply.Token, ExpiredTime: reply.ExpiredTime}} - log.NewInfo(req.OperationID, "UserRegister return ", resp) + log.NewInfo(req.OperationID, "UserToken return ", resp) c.JSON(http.StatusOK, resp) } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e71647d55..a6a5dadbc 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -13,6 +13,7 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" pbGroup "Open_IM/pkg/proto/group" open_im_sdk "Open_IM/pkg/proto/sdk_ws" + pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" "net" @@ -576,6 +577,22 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) } chat.MemberQuitNotification(req) + //modify quitter conversation info + var reqPb pbUser.SetConversationReq + reqPb.OperationID = req.OperationID + reqPb.Conversation.OwnerUserID = req.OpUserID + reqPb.Conversation.ConversationID = utils.GetConversationIDBySessionType(req.OpUserID, constant.GroupChatType) + reqPb.Conversation.ConversationType = constant.GroupChatType + reqPb.Conversation.GroupID = req.GroupID + reqPb.Conversation.IsNotInGroup = true + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.SetConversation(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) + } else { + log.NewDebug(req.OpUserID, utils.GetSelfFuncName(), respPb.String()) + } log.NewInfo(req.OperationID, "rpc QuitGroup return ", pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } @@ -988,13 +1005,35 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } chat.GroupDismissedNotification(req) - + memberList, err := imdb.GetGroupMemberListByGroupID(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "GetGroupMemberListByGroupID failed,", err.Error(), req.GroupID) + } + //modify quitter conversation info + var reqPb pbUser.SetConversationReq + for _, v := range memberList { + reqPb.OperationID = req.OperationID + reqPb.Conversation.OwnerUserID = v.UserID + reqPb.Conversation.ConversationID = utils.GetConversationIDBySessionType(v.UserID, constant.GroupChatType) + reqPb.Conversation.ConversationType = constant.GroupChatType + reqPb.Conversation.GroupID = req.GroupID + reqPb.Conversation.IsNotInGroup = true + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.SetConversation(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error(), v.UserID) + } else { + log.NewDebug(req.OpUserID, utils.GetSelfFuncName(), respPb.String(), v.UserID) + } + } err = imdb.DeleteGroupMemberByGroupID(req.GroupID) if err != nil { log.NewError(req.OperationID, "DeleteGroupMemberByGroupID failed ", req.GroupID) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 6aaea1d78..11c635e90 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -75,7 +75,7 @@ func (s *userServer) Run() { func syncPeerUserConversation(conversation *pbUser.Conversation, operationID string) error { peerUserConversation := db.Conversation{ OwnerUserID: conversation.UserID, - ConversationID: "single_" + conversation.OwnerUserID, + ConversationID: utils.GetConversationIDBySessionType(conversation.OwnerUserID, constant.SingleChatType), ConversationType: constant.SingleChatType, UserID: conversation.OwnerUserID, GroupID: "", @@ -129,6 +129,7 @@ func (s *userServer) BatchSetConversations(ctx context.Context, req *pbUser.Batc if err := utils.CopyStructFields(&conversation, v); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), v.String(), "CopyStructFields failed", err.Error()) } + //redis op if err := db.DB.SetSingleConversationRecvMsgOpt(req.OwnerUserID, v.ConversationID, v.RecvMsgOpt); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "cache failed, rpc return", err.Error()) resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 10b46f547..5e9d021f6 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -43,6 +43,8 @@ type Conversation struct { DraftTextTime int64 `json:"draftTextTime"` IsPinned bool `json:"isPinned" binding:"omitempty"` IsPrivateChat bool `json:"isPrivateChat"` + GroupAtType int32 `json:"groupAtType"` + IsNotInGroup bool `json:"isNotInGroup"` AttachedInfo string `json:"attachedInfo"` Ex string `json:"ex"` } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 9591050e0..9e50a8fc6 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -215,6 +215,8 @@ type Conversation struct { DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` IsPrivateChat bool `gorm:"column:is_private_chat" json:"isPrivateChat"` + GroupAtType int32 `gorm:"column:group_at_type" json:"groupAtType"` + IsNotInGroup bool `gorm:"column:is_not_in_group" json:"isNotInGroup"` AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 003b7afa7..5d1a08035 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -321,7 +321,8 @@ func SetConversation(conversation db.Conversation) error { log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") //force update return dbConn.Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). - Update(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt, "is_pinned": conversation.IsPinned, "is_private_chat": conversation.IsPrivateChat}).Error + Update(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt, "is_pinned": conversation.IsPinned, "is_private_chat": conversation.IsPrivateChat, + "group_at_type": conversation.GroupAtType, "is_not_in_group": conversation.IsNotInGroup}).Error } } diff --git a/pkg/utils/strings.go b/pkg/utils/strings.go index 49d883f7c..a05ba927a 100644 --- a/pkg/utils/strings.go +++ b/pkg/utils/strings.go @@ -85,6 +85,8 @@ func GetConversationIDBySessionType(sourceID string, sessionType int) string { return "single_" + sourceID case constant.GroupChatType: return "group_" + sourceID + case constant.NotificationChatType: + return "notification_" + sourceID } return "" } From bcad3c1ced07577b5dff449257fe24a26baf4b65 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 20 Apr 2022 18:53:23 +0800 Subject: [PATCH 02/57] add save message to mysql switch --- internal/msg_transfer/logic/init.go | 8 ++++++-- .../msg_transfer/logic/persistent_msg_handler.go | 12 ++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/internal/msg_transfer/logic/init.go b/internal/msg_transfer/logic/init.go index 20326bbfc..a67b9cff4 100644 --- a/internal/msg_transfer/logic/init.go +++ b/internal/msg_transfer/logic/init.go @@ -2,8 +2,8 @@ package logic import ( "Open_IM/pkg/common/config" - "Open_IM/pkg/common/kafka" + "fmt" ) var ( @@ -20,6 +20,10 @@ func Init() { } func Run() { //register mysqlConsumerHandler to - go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) + if config.Config.ChatPersistenceMysql { + go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) + } else { + fmt.Println("not start mysql consumer") + } go historyCH.historyConsumerGroup.RegisterHandleAndConsumer(&historyCH) } diff --git a/internal/msg_transfer/logic/persistent_msg_handler.go b/internal/msg_transfer/logic/persistent_msg_handler.go index 0a815ca1a..5400d54d6 100644 --- a/internal/msg_transfer/logic/persistent_msg_handler.go +++ b/internal/msg_transfer/logic/persistent_msg_handler.go @@ -56,14 +56,10 @@ func (pc *PersistentConsumerHandler) handleChatWs2Mysql(msg []byte, msgKey strin } } if tag { - if config.Config.ChatPersistenceMysql == true { - log.NewInfo(msgFromMQ.OperationID, "msg_transfer msg persisting", string(msg)) - if err = im_mysql_msg_model.InsertMessageToChatLog(msgFromMQ); err != nil { - log.NewError(msgFromMQ.OperationID, "Message insert failed", "err", err.Error(), "msg", msgFromMQ.String()) - return - } - } else { - log.Debug(msgFromMQ.OperationID, "don't insert to db", string(msg)) + log.NewInfo(msgFromMQ.OperationID, "msg_transfer msg persisting", string(msg)) + if err = im_mysql_msg_model.InsertMessageToChatLog(msgFromMQ); err != nil { + log.NewError(msgFromMQ.OperationID, "Message insert failed", "err", err.Error(), "msg", msgFromMQ.String()) + return } } From 62e605a443d0256448f0b085e8b6dde2629a59fd Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 21 Apr 2022 10:43:31 +0800 Subject: [PATCH 03/57] workMoments --- internal/api/office/work_moments.go | 1 + internal/rpc/msg/work_moments_notification.go | 24 +- internal/rpc/office/office.go | 35 +- pkg/base_info/work_moments_struct.go | 20 +- pkg/common/db/mongoModel.go | 38 +- pkg/proto/office/office.pb.go | 425 +++++++++++------- pkg/proto/office/office.proto | 18 +- 7 files changed, 325 insertions(+), 236 deletions(-) diff --git a/internal/api/office/work_moments.go b/internal/api/office/work_moments.go index e948992df..fcea9a1a0 100644 --- a/internal/api/office/work_moments.go +++ b/internal/api/office/work_moments.go @@ -202,6 +202,7 @@ func GetWorkMomentByID(c *gin.Context) { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } //resp.Data.WorkMoment = respPb.WorkMoment + resp.Data.WorkMoment = &apiStruct.WorkMoment{} if err := utils.CopyStructFields(&resp.Data.WorkMoment, respPb.WorkMoment); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } diff --git a/internal/rpc/msg/work_moments_notification.go b/internal/rpc/msg/work_moments_notification.go index 7c33f7bb3..4631abf06 100644 --- a/internal/rpc/msg/work_moments_notification.go +++ b/internal/rpc/msg/work_moments_notification.go @@ -4,28 +4,38 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" pbOffice "Open_IM/pkg/proto/office" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" + "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" ) func WorkMomentSendNotification(operationID, sendID, recvID string, notificationMsg *pbOffice.WorkMomentNotificationMsg) { log.NewInfo(operationID, utils.GetSelfFuncName(), recvID) - bytes, err := proto.Marshal(notificationMsg) - if err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), "proto marshal failed", err.Error()) - } - WorkMomentNotification(operationID, sendID, recvID, bytes) + WorkMomentNotification(operationID, sendID, recvID, notificationMsg) } -func WorkMomentNotification(operationID, sendID, recvID string, content []byte) { +func WorkMomentNotification(operationID, sendID, recvID string, m proto.Message) { + marshaler := jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: false, + } + var tips open_im_sdk.TipsComm + var err error + tips.JsonDetail, _ = marshaler.MarshalToString(m) n := &NotificationMsg{ SendID: sendID, RecvID: recvID, - Content: content, MsgFrom: constant.UserMsgType, ContentType: constant.WorkMomentNotification, SessionType: constant.UserMsgType, OperationID: operationID, } + n.Content, err = proto.Marshal(m) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "proto marshal falied", err.Error()) + return + } Notification(n) } diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index 734c6a92e..cdcff1112 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -285,16 +285,19 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea if err := utils.CopyStructFields(&workMoment, req.WorkMoment); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - workMoment.PermissionUserIDList = s.getPermissionUserIDList(req.OperationID, req.WorkMoment.PermissionGroupIDList, req.WorkMoment.PermissionUserIDList) - for _, userID := range req.WorkMoment.AtUserIDList { - userName, err := imdb.GetUserNameByUserID(userID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserNameByUserID failed", userID, err.Error()) - continue + workMoment.PermissionUserIDList = s.getPermissionUserIDList(req.OperationID, req.WorkMoment.PermissionGroupList, req.WorkMoment.PermissionUserList) + for _, user := range req.WorkMoment.AtUserList { + if user.UserName == "" { + userName, err := imdb.GetUserNameByUserID(user.UserID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserNameByUserID failed", user.UserID, err.Error()) + continue + } + user.UserName = userName } workMoment.AtUserList = append(workMoment.AtUserList, &db.AtUser{ - UserID: userID, - UserName: userName, + UserID: user.UserID, + UserName: user.UserName, }) } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "workMoment to create", workMoment) @@ -306,7 +309,7 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea } // send notification to at users - for _, atUser := range req.WorkMoment.AtUserIDList { + for _, atUser := range req.WorkMoment.AtUserList { workMomentNotificationMsg := &pbOffice.WorkMomentNotificationMsg{ NotificationMsgType: constant.WorkMomentAtUserNotification, WorkMomentID: workMoment.WorkMomentID, @@ -315,23 +318,27 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea FaceURL: createUser.FaceURL, UserName: createUser.Nickname, } - msg.WorkMomentSendNotification(req.OperationID, workMoment.UserID, atUser, workMomentNotificationMsg) + msg.WorkMomentSendNotification(req.OperationID, workMoment.UserID, atUser.UserID, workMomentNotificationMsg) } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } // count and distinct permission users -func (s *officeServer) getPermissionUserIDList(operationID string, groupIDList, userIDList []string) []string { +func (s *officeServer) getPermissionUserIDList(operationID string, groupList []*pbOffice.PermissionGroup, userList []*pbOffice.WorkMomentUser) []string { var permissionUserIDList []string - for _, groupID := range groupIDList { - GroupMemberIDList, err := imdb.GetGroupMemberIDListByGroupID(groupID) + for _, group := range groupList { + GroupMemberIDList, err := imdb.GetGroupMemberIDListByGroupID(group.GroupID) if err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), "GetGroupMemberIDListByGroupID failed", groupID, err.Error()) + log.NewError(operationID, utils.GetSelfFuncName(), "GetGroupMemberIDListByGroupID failed", group, err.Error()) continue } permissionUserIDList = append(permissionUserIDList, GroupMemberIDList...) } + var userIDList []string + for _, user := range userList { + userIDList = append(userIDList, user.UserID) + } permissionUserIDList = append(permissionUserIDList, userIDList...) permissionUserIDList = utils.RemoveRepeatedStringInList(permissionUserIDList) return permissionUserIDList diff --git a/pkg/base_info/work_moments_struct.go b/pkg/base_info/work_moments_struct.go index d39f3f981..cb418b448 100644 --- a/pkg/base_info/work_moments_struct.go +++ b/pkg/base_info/work_moments_struct.go @@ -45,16 +45,16 @@ type GetWorkMomentByIDReq struct { } type WorkMoment struct { - WorkMomentID string `json:"workMomentID"` - UserID string `json:"userID"` - Content string `json:"content"` - LikeUsers []*LikeUser `json:"likeUsers"` - Comments []*Comment `json:"comments"` - Permission int32 `json:"permission"` - PermissionUserIDList []string `json:"permissionUserIDList"` - PermissionGroupIDList []string `json:"permissionGroupIDList"` - AtUserIDList []string `json:"atUserIDList"` - CreateTime int32 `json:"createTime,omitempty"` + WorkMomentID string `json:"workMomentID"` + UserID string `json:"userID"` + Content string `json:"content"` + LikeUsers []*LikeUser `json:"likeUsers"` + Comments []*Comment `json:"comments"` + //Permission int32 `json:"permission"` + //PermissionUserIDList []string `json:"permissionUserIDList"` + //PermissionGroupIDList []string `json:"permissionGroupIDList"` + AtUserIDList []string `json:"atUserIDList"` + CreateTime int32 `json:"createTime,omitempty"` } type LikeUser struct { diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 20bf470f2..4a08ffba4 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -642,7 +642,7 @@ func (d *DataBases) LikeOneWorkMoment(likeUserID, userName, workMomentID string) log.NewDebug("", utils.GetSelfFuncName(), workMoment) ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) - _, err = c.UpdateOne(ctx, bson.M{"work_moment_id": workMomentID}, bson.M{"$set": bson.M{"like_users": workMoment.LikeUserList}}) + _, err = c.UpdateOne(ctx, bson.M{"work_moment_id": workMomentID}, bson.M{"$set": bson.M{"like_user_list": workMoment.LikeUserList}}) return workMoment, err } @@ -683,42 +683,6 @@ func (d *DataBases) GetUserFriendWorkMomentsRecursion(friendIDList []string, sho return workMomentList, nil } err = result.All(ctx, &workMomentList) - //if len(workMomentList) == 0 { - // return workMomentList, nil - //} - //for i, workMoment := range workMomentList { - // if workMoment.IsPrivate { - // workMomentList = append(workMomentList[0:i], workMomentList[i+1:]...) - // continue - // } - // - // var isContain bool - // for _, WhoCanSeeUserID := range workMoment.WhoCanSeeUserIDList { - // if WhoCanSeeUserID == userID { - // isContain = true - // break - // } - // } - // if !isContain { - // workMomentList = append(workMomentList[0:i], workMomentList[i+1:]...) - // continue - // } - // - // for _, whoCantSeeUserID := range workMoment.WhoCantSeeUserIDList { - // if whoCantSeeUserID == userID { - // workMomentList = append(workMomentList[0:i], workMomentList[i+1:]...) - // break - // } - // } - //} - // - //if len(workMomentList) < int(pageNumber) { - // workMomentListWorkMomentList, err := d.GetUserFriendWorkMomentsRecursion(friendIDList, showNumber, pageNumber, userID) - // workMomentList = append(workMomentList, workMomentListWorkMomentList...) - // if err != nil { - // return workMomentList, err - // } - //} return workMomentList, err } diff --git a/pkg/proto/office/office.pb.go b/pkg/proto/office/office.pb.go index 8e4f76511..f0a67fd91 100644 --- a/pkg/proto/office/office.pb.go +++ b/pkg/proto/office/office.pb.go @@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{0} + return fileDescriptor_office_02f43b66ea327245, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -82,7 +82,7 @@ func (m *TagUser) Reset() { *m = TagUser{} } func (m *TagUser) String() string { return proto.CompactTextString(m) } func (*TagUser) ProtoMessage() {} func (*TagUser) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{1} + return fileDescriptor_office_02f43b66ea327245, []int{1} } func (m *TagUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TagUser.Unmarshal(m, b) @@ -129,7 +129,7 @@ func (m *Tag) Reset() { *m = Tag{} } func (m *Tag) String() string { return proto.CompactTextString(m) } func (*Tag) ProtoMessage() {} func (*Tag) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{2} + return fileDescriptor_office_02f43b66ea327245, []int{2} } func (m *Tag) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Tag.Unmarshal(m, b) @@ -182,7 +182,7 @@ func (m *GetUserTagsReq) Reset() { *m = GetUserTagsReq{} } func (m *GetUserTagsReq) String() string { return proto.CompactTextString(m) } func (*GetUserTagsReq) ProtoMessage() {} func (*GetUserTagsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{3} + return fileDescriptor_office_02f43b66ea327245, []int{3} } func (m *GetUserTagsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserTagsReq.Unmarshal(m, b) @@ -228,7 +228,7 @@ func (m *GetUserTagsResp) Reset() { *m = GetUserTagsResp{} } func (m *GetUserTagsResp) String() string { return proto.CompactTextString(m) } func (*GetUserTagsResp) ProtoMessage() {} func (*GetUserTagsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{4} + return fileDescriptor_office_02f43b66ea327245, []int{4} } func (m *GetUserTagsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserTagsResp.Unmarshal(m, b) @@ -276,7 +276,7 @@ func (m *CreateTagReq) Reset() { *m = CreateTagReq{} } func (m *CreateTagReq) String() string { return proto.CompactTextString(m) } func (*CreateTagReq) ProtoMessage() {} func (*CreateTagReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{5} + return fileDescriptor_office_02f43b66ea327245, []int{5} } func (m *CreateTagReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateTagReq.Unmarshal(m, b) @@ -335,7 +335,7 @@ func (m *CreateTagResp) Reset() { *m = CreateTagResp{} } func (m *CreateTagResp) String() string { return proto.CompactTextString(m) } func (*CreateTagResp) ProtoMessage() {} func (*CreateTagResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{6} + return fileDescriptor_office_02f43b66ea327245, []int{6} } func (m *CreateTagResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateTagResp.Unmarshal(m, b) @@ -375,7 +375,7 @@ func (m *DeleteTagReq) Reset() { *m = DeleteTagReq{} } func (m *DeleteTagReq) String() string { return proto.CompactTextString(m) } func (*DeleteTagReq) ProtoMessage() {} func (*DeleteTagReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{7} + return fileDescriptor_office_02f43b66ea327245, []int{7} } func (m *DeleteTagReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteTagReq.Unmarshal(m, b) @@ -427,7 +427,7 @@ func (m *DeleteTagResp) Reset() { *m = DeleteTagResp{} } func (m *DeleteTagResp) String() string { return proto.CompactTextString(m) } func (*DeleteTagResp) ProtoMessage() {} func (*DeleteTagResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{8} + return fileDescriptor_office_02f43b66ea327245, []int{8} } func (m *DeleteTagResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteTagResp.Unmarshal(m, b) @@ -470,7 +470,7 @@ func (m *SetTagReq) Reset() { *m = SetTagReq{} } func (m *SetTagReq) String() string { return proto.CompactTextString(m) } func (*SetTagReq) ProtoMessage() {} func (*SetTagReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{9} + return fileDescriptor_office_02f43b66ea327245, []int{9} } func (m *SetTagReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetTagReq.Unmarshal(m, b) @@ -543,7 +543,7 @@ func (m *SetTagResp) Reset() { *m = SetTagResp{} } func (m *SetTagResp) String() string { return proto.CompactTextString(m) } func (*SetTagResp) ProtoMessage() {} func (*SetTagResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{10} + return fileDescriptor_office_02f43b66ea327245, []int{10} } func (m *SetTagResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetTagResp.Unmarshal(m, b) @@ -587,7 +587,7 @@ func (m *SendMsg2TagReq) Reset() { *m = SendMsg2TagReq{} } func (m *SendMsg2TagReq) String() string { return proto.CompactTextString(m) } func (*SendMsg2TagReq) ProtoMessage() {} func (*SendMsg2TagReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{11} + return fileDescriptor_office_02f43b66ea327245, []int{11} } func (m *SendMsg2TagReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsg2TagReq.Unmarshal(m, b) @@ -667,7 +667,7 @@ func (m *SendMsg2TagResp) Reset() { *m = SendMsg2TagResp{} } func (m *SendMsg2TagResp) String() string { return proto.CompactTextString(m) } func (*SendMsg2TagResp) ProtoMessage() {} func (*SendMsg2TagResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{12} + return fileDescriptor_office_02f43b66ea327245, []int{12} } func (m *SendMsg2TagResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsg2TagResp.Unmarshal(m, b) @@ -707,7 +707,7 @@ func (m *GetTagSendLogsReq) Reset() { *m = GetTagSendLogsReq{} } func (m *GetTagSendLogsReq) String() string { return proto.CompactTextString(m) } func (*GetTagSendLogsReq) ProtoMessage() {} func (*GetTagSendLogsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{13} + return fileDescriptor_office_02f43b66ea327245, []int{13} } func (m *GetTagSendLogsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTagSendLogsReq.Unmarshal(m, b) @@ -761,7 +761,7 @@ func (m *TagSendLog) Reset() { *m = TagSendLog{} } func (m *TagSendLog) String() string { return proto.CompactTextString(m) } func (*TagSendLog) ProtoMessage() {} func (*TagSendLog) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{14} + return fileDescriptor_office_02f43b66ea327245, []int{14} } func (m *TagSendLog) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TagSendLog.Unmarshal(m, b) @@ -815,7 +815,7 @@ func (m *GetTagSendLogsResp) Reset() { *m = GetTagSendLogsResp{} } func (m *GetTagSendLogsResp) String() string { return proto.CompactTextString(m) } func (*GetTagSendLogsResp) ProtoMessage() {} func (*GetTagSendLogsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{15} + return fileDescriptor_office_02f43b66ea327245, []int{15} } func (m *GetTagSendLogsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTagSendLogsResp.Unmarshal(m, b) @@ -869,7 +869,7 @@ func (m *GetUserTagByIDReq) Reset() { *m = GetUserTagByIDReq{} } func (m *GetUserTagByIDReq) String() string { return proto.CompactTextString(m) } func (*GetUserTagByIDReq) ProtoMessage() {} func (*GetUserTagByIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{16} + return fileDescriptor_office_02f43b66ea327245, []int{16} } func (m *GetUserTagByIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserTagByIDReq.Unmarshal(m, b) @@ -922,7 +922,7 @@ func (m *GetUserTagByIDResp) Reset() { *m = GetUserTagByIDResp{} } func (m *GetUserTagByIDResp) String() string { return proto.CompactTextString(m) } func (*GetUserTagByIDResp) ProtoMessage() {} func (*GetUserTagByIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{17} + return fileDescriptor_office_02f43b66ea327245, []int{17} } func (m *GetUserTagByIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserTagByIDResp.Unmarshal(m, b) @@ -968,7 +968,7 @@ func (m *LikeUser) Reset() { *m = LikeUser{} } func (m *LikeUser) String() string { return proto.CompactTextString(m) } func (*LikeUser) ProtoMessage() {} func (*LikeUser) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{18} + return fileDescriptor_office_02f43b66ea327245, []int{18} } func (m *LikeUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LikeUser.Unmarshal(m, b) @@ -1014,7 +1014,7 @@ func (m *NotificationUser) Reset() { *m = NotificationUser{} } func (m *NotificationUser) String() string { return proto.CompactTextString(m) } func (*NotificationUser) ProtoMessage() {} func (*NotificationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{19} + return fileDescriptor_office_02f43b66ea327245, []int{19} } func (m *NotificationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NotificationUser.Unmarshal(m, b) @@ -1066,7 +1066,7 @@ func (m *Comment) Reset() { *m = Comment{} } func (m *Comment) String() string { return proto.CompactTextString(m) } func (*Comment) ProtoMessage() {} func (*Comment) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{20} + return fileDescriptor_office_02f43b66ea327245, []int{20} } func (m *Comment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Comment.Unmarshal(m, b) @@ -1142,29 +1142,121 @@ func (m *Comment) GetCreateTime() int32 { return 0 } +type PermissionGroup struct { + GroupName string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"` + GroupID string `protobuf:"bytes,2,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PermissionGroup) Reset() { *m = PermissionGroup{} } +func (m *PermissionGroup) String() string { return proto.CompactTextString(m) } +func (*PermissionGroup) ProtoMessage() {} +func (*PermissionGroup) Descriptor() ([]byte, []int) { + return fileDescriptor_office_02f43b66ea327245, []int{21} +} +func (m *PermissionGroup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PermissionGroup.Unmarshal(m, b) +} +func (m *PermissionGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PermissionGroup.Marshal(b, m, deterministic) +} +func (dst *PermissionGroup) XXX_Merge(src proto.Message) { + xxx_messageInfo_PermissionGroup.Merge(dst, src) +} +func (m *PermissionGroup) XXX_Size() int { + return xxx_messageInfo_PermissionGroup.Size(m) +} +func (m *PermissionGroup) XXX_DiscardUnknown() { + xxx_messageInfo_PermissionGroup.DiscardUnknown(m) +} + +var xxx_messageInfo_PermissionGroup proto.InternalMessageInfo + +func (m *PermissionGroup) GetGroupName() string { + if m != nil { + return m.GroupName + } + return "" +} + +func (m *PermissionGroup) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type WorkMomentUser struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WorkMomentUser) Reset() { *m = WorkMomentUser{} } +func (m *WorkMomentUser) String() string { return proto.CompactTextString(m) } +func (*WorkMomentUser) ProtoMessage() {} +func (*WorkMomentUser) Descriptor() ([]byte, []int) { + return fileDescriptor_office_02f43b66ea327245, []int{22} +} +func (m *WorkMomentUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WorkMomentUser.Unmarshal(m, b) +} +func (m *WorkMomentUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WorkMomentUser.Marshal(b, m, deterministic) +} +func (dst *WorkMomentUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_WorkMomentUser.Merge(dst, src) +} +func (m *WorkMomentUser) XXX_Size() int { + return xxx_messageInfo_WorkMomentUser.Size(m) +} +func (m *WorkMomentUser) XXX_DiscardUnknown() { + xxx_messageInfo_WorkMomentUser.DiscardUnknown(m) +} + +var xxx_messageInfo_WorkMomentUser proto.InternalMessageInfo + +func (m *WorkMomentUser) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *WorkMomentUser) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + type WorkMoment struct { - WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - UserName string `protobuf:"bytes,3,opt,name=userName" json:"userName,omitempty"` - FaceURL string `protobuf:"bytes,4,opt,name=faceURL" json:"faceURL,omitempty"` - Content string `protobuf:"bytes,5,opt,name=content" json:"content,omitempty"` - LikeUsers []*LikeUser `protobuf:"bytes,6,rep,name=likeUsers" json:"likeUsers,omitempty"` - Comments []*Comment `protobuf:"bytes,7,rep,name=comments" json:"comments,omitempty"` - Permission int32 `protobuf:"varint,8,opt,name=permission" json:"permission,omitempty"` - PermissionUserIDList []string `protobuf:"bytes,9,rep,name=permissionUserIDList" json:"permissionUserIDList,omitempty"` - PermissionGroupIDList []string `protobuf:"bytes,10,rep,name=permissionGroupIDList" json:"permissionGroupIDList,omitempty"` - AtUserIDList []string `protobuf:"bytes,11,rep,name=atUserIDList" json:"atUserIDList,omitempty"` - CreateTime int32 `protobuf:"varint,12,opt,name=createTime" json:"createTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=userName" json:"userName,omitempty"` + FaceURL string `protobuf:"bytes,4,opt,name=faceURL" json:"faceURL,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content" json:"content,omitempty"` + LikeUserList []*WorkMomentUser `protobuf:"bytes,6,rep,name=likeUserList" json:"likeUserList,omitempty"` + Comments []*Comment `protobuf:"bytes,7,rep,name=comments" json:"comments,omitempty"` + Permission int32 `protobuf:"varint,8,opt,name=permission" json:"permission,omitempty"` + PermissionUserList []*WorkMomentUser `protobuf:"bytes,9,rep,name=permissionUserList" json:"permissionUserList,omitempty"` + PermissionGroupList []*PermissionGroup `protobuf:"bytes,10,rep,name=permissionGroupList" json:"permissionGroupList,omitempty"` + AtUserList []*WorkMomentUser `protobuf:"bytes,11,rep,name=atUserList" json:"atUserList,omitempty"` + CreateTime int32 `protobuf:"varint,12,opt,name=createTime" json:"createTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *WorkMoment) Reset() { *m = WorkMoment{} } func (m *WorkMoment) String() string { return proto.CompactTextString(m) } func (*WorkMoment) ProtoMessage() {} func (*WorkMoment) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{21} + return fileDescriptor_office_02f43b66ea327245, []int{23} } func (m *WorkMoment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WorkMoment.Unmarshal(m, b) @@ -1219,9 +1311,9 @@ func (m *WorkMoment) GetContent() string { return "" } -func (m *WorkMoment) GetLikeUsers() []*LikeUser { +func (m *WorkMoment) GetLikeUserList() []*WorkMomentUser { if m != nil { - return m.LikeUsers + return m.LikeUserList } return nil } @@ -1240,23 +1332,23 @@ func (m *WorkMoment) GetPermission() int32 { return 0 } -func (m *WorkMoment) GetPermissionUserIDList() []string { +func (m *WorkMoment) GetPermissionUserList() []*WorkMomentUser { if m != nil { - return m.PermissionUserIDList + return m.PermissionUserList } return nil } -func (m *WorkMoment) GetPermissionGroupIDList() []string { +func (m *WorkMoment) GetPermissionGroupList() []*PermissionGroup { if m != nil { - return m.PermissionGroupIDList + return m.PermissionGroupList } return nil } -func (m *WorkMoment) GetAtUserIDList() []string { +func (m *WorkMoment) GetAtUserList() []*WorkMomentUser { if m != nil { - return m.AtUserIDList + return m.AtUserList } return nil } @@ -1280,7 +1372,7 @@ func (m *CreateOneWorkMomentReq) Reset() { *m = CreateOneWorkMomentReq{} func (m *CreateOneWorkMomentReq) String() string { return proto.CompactTextString(m) } func (*CreateOneWorkMomentReq) ProtoMessage() {} func (*CreateOneWorkMomentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{22} + return fileDescriptor_office_02f43b66ea327245, []int{24} } func (m *CreateOneWorkMomentReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateOneWorkMomentReq.Unmarshal(m, b) @@ -1325,7 +1417,7 @@ func (m *CreateOneWorkMomentResp) Reset() { *m = CreateOneWorkMomentResp func (m *CreateOneWorkMomentResp) String() string { return proto.CompactTextString(m) } func (*CreateOneWorkMomentResp) ProtoMessage() {} func (*CreateOneWorkMomentResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{23} + return fileDescriptor_office_02f43b66ea327245, []int{25} } func (m *CreateOneWorkMomentResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateOneWorkMomentResp.Unmarshal(m, b) @@ -1365,7 +1457,7 @@ func (m *DeleteOneWorkMomentReq) Reset() { *m = DeleteOneWorkMomentReq{} func (m *DeleteOneWorkMomentReq) String() string { return proto.CompactTextString(m) } func (*DeleteOneWorkMomentReq) ProtoMessage() {} func (*DeleteOneWorkMomentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{24} + return fileDescriptor_office_02f43b66ea327245, []int{26} } func (m *DeleteOneWorkMomentReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteOneWorkMomentReq.Unmarshal(m, b) @@ -1417,7 +1509,7 @@ func (m *DeleteOneWorkMomentResp) Reset() { *m = DeleteOneWorkMomentResp func (m *DeleteOneWorkMomentResp) String() string { return proto.CompactTextString(m) } func (*DeleteOneWorkMomentResp) ProtoMessage() {} func (*DeleteOneWorkMomentResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{25} + return fileDescriptor_office_02f43b66ea327245, []int{27} } func (m *DeleteOneWorkMomentResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteOneWorkMomentResp.Unmarshal(m, b) @@ -1457,7 +1549,7 @@ func (m *LikeOneWorkMomentReq) Reset() { *m = LikeOneWorkMomentReq{} } func (m *LikeOneWorkMomentReq) String() string { return proto.CompactTextString(m) } func (*LikeOneWorkMomentReq) ProtoMessage() {} func (*LikeOneWorkMomentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{26} + return fileDescriptor_office_02f43b66ea327245, []int{28} } func (m *LikeOneWorkMomentReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LikeOneWorkMomentReq.Unmarshal(m, b) @@ -1509,7 +1601,7 @@ func (m *LikeOneWorkMomentResp) Reset() { *m = LikeOneWorkMomentResp{} } func (m *LikeOneWorkMomentResp) String() string { return proto.CompactTextString(m) } func (*LikeOneWorkMomentResp) ProtoMessage() {} func (*LikeOneWorkMomentResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{27} + return fileDescriptor_office_02f43b66ea327245, []int{29} } func (m *LikeOneWorkMomentResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LikeOneWorkMomentResp.Unmarshal(m, b) @@ -1551,7 +1643,7 @@ func (m *CommentOneWorkMomentReq) Reset() { *m = CommentOneWorkMomentReq func (m *CommentOneWorkMomentReq) String() string { return proto.CompactTextString(m) } func (*CommentOneWorkMomentReq) ProtoMessage() {} func (*CommentOneWorkMomentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{28} + return fileDescriptor_office_02f43b66ea327245, []int{30} } func (m *CommentOneWorkMomentReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommentOneWorkMomentReq.Unmarshal(m, b) @@ -1617,7 +1709,7 @@ func (m *CommentOneWorkMomentResp) Reset() { *m = CommentOneWorkMomentRe func (m *CommentOneWorkMomentResp) String() string { return proto.CompactTextString(m) } func (*CommentOneWorkMomentResp) ProtoMessage() {} func (*CommentOneWorkMomentResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{29} + return fileDescriptor_office_02f43b66ea327245, []int{31} } func (m *CommentOneWorkMomentResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommentOneWorkMomentResp.Unmarshal(m, b) @@ -1657,7 +1749,7 @@ func (m *GetWorkMomentByIDReq) Reset() { *m = GetWorkMomentByIDReq{} } func (m *GetWorkMomentByIDReq) String() string { return proto.CompactTextString(m) } func (*GetWorkMomentByIDReq) ProtoMessage() {} func (*GetWorkMomentByIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{30} + return fileDescriptor_office_02f43b66ea327245, []int{32} } func (m *GetWorkMomentByIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetWorkMomentByIDReq.Unmarshal(m, b) @@ -1710,7 +1802,7 @@ func (m *GetWorkMomentByIDResp) Reset() { *m = GetWorkMomentByIDResp{} } func (m *GetWorkMomentByIDResp) String() string { return proto.CompactTextString(m) } func (*GetWorkMomentByIDResp) ProtoMessage() {} func (*GetWorkMomentByIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{31} + return fileDescriptor_office_02f43b66ea327245, []int{33} } func (m *GetWorkMomentByIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetWorkMomentByIDResp.Unmarshal(m, b) @@ -1759,7 +1851,7 @@ func (m *ChangeWorkMomentPermissionReq) Reset() { *m = ChangeWorkMomentP func (m *ChangeWorkMomentPermissionReq) String() string { return proto.CompactTextString(m) } func (*ChangeWorkMomentPermissionReq) ProtoMessage() {} func (*ChangeWorkMomentPermissionReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{32} + return fileDescriptor_office_02f43b66ea327245, []int{34} } func (m *ChangeWorkMomentPermissionReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChangeWorkMomentPermissionReq.Unmarshal(m, b) @@ -1825,7 +1917,7 @@ func (m *ChangeWorkMomentPermissionResp) Reset() { *m = ChangeWorkMoment func (m *ChangeWorkMomentPermissionResp) String() string { return proto.CompactTextString(m) } func (*ChangeWorkMomentPermissionResp) ProtoMessage() {} func (*ChangeWorkMomentPermissionResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{33} + return fileDescriptor_office_02f43b66ea327245, []int{35} } func (m *ChangeWorkMomentPermissionResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChangeWorkMomentPermissionResp.Unmarshal(m, b) @@ -1865,7 +1957,7 @@ func (m *GetUserWorkMomentsReq) Reset() { *m = GetUserWorkMomentsReq{} } func (m *GetUserWorkMomentsReq) String() string { return proto.CompactTextString(m) } func (*GetUserWorkMomentsReq) ProtoMessage() {} func (*GetUserWorkMomentsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{34} + return fileDescriptor_office_02f43b66ea327245, []int{36} } func (m *GetUserWorkMomentsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserWorkMomentsReq.Unmarshal(m, b) @@ -1919,7 +2011,7 @@ func (m *GetUserWorkMomentsResp) Reset() { *m = GetUserWorkMomentsResp{} func (m *GetUserWorkMomentsResp) String() string { return proto.CompactTextString(m) } func (*GetUserWorkMomentsResp) ProtoMessage() {} func (*GetUserWorkMomentsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{35} + return fileDescriptor_office_02f43b66ea327245, []int{37} } func (m *GetUserWorkMomentsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserWorkMomentsResp.Unmarshal(m, b) @@ -1973,7 +2065,7 @@ func (m *GetUserFriendWorkMomentsReq) Reset() { *m = GetUserFriendWorkMo func (m *GetUserFriendWorkMomentsReq) String() string { return proto.CompactTextString(m) } func (*GetUserFriendWorkMomentsReq) ProtoMessage() {} func (*GetUserFriendWorkMomentsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{36} + return fileDescriptor_office_02f43b66ea327245, []int{38} } func (m *GetUserFriendWorkMomentsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserFriendWorkMomentsReq.Unmarshal(m, b) @@ -2027,7 +2119,7 @@ func (m *GetUserFriendWorkMomentsResp) Reset() { *m = GetUserFriendWorkM func (m *GetUserFriendWorkMomentsResp) String() string { return proto.CompactTextString(m) } func (*GetUserFriendWorkMomentsResp) ProtoMessage() {} func (*GetUserFriendWorkMomentsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{37} + return fileDescriptor_office_02f43b66ea327245, []int{39} } func (m *GetUserFriendWorkMomentsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserFriendWorkMomentsResp.Unmarshal(m, b) @@ -2085,7 +2177,7 @@ func (m *WorkMomentNotificationMsg) Reset() { *m = WorkMomentNotificatio func (m *WorkMomentNotificationMsg) String() string { return proto.CompactTextString(m) } func (*WorkMomentNotificationMsg) ProtoMessage() {} func (*WorkMomentNotificationMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{38} + return fileDescriptor_office_02f43b66ea327245, []int{40} } func (m *WorkMomentNotificationMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WorkMomentNotificationMsg.Unmarshal(m, b) @@ -2167,7 +2259,7 @@ func (m *SetUserWorkMomentsLevelReq) Reset() { *m = SetUserWorkMomentsLe func (m *SetUserWorkMomentsLevelReq) String() string { return proto.CompactTextString(m) } func (*SetUserWorkMomentsLevelReq) ProtoMessage() {} func (*SetUserWorkMomentsLevelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{39} + return fileDescriptor_office_02f43b66ea327245, []int{41} } func (m *SetUserWorkMomentsLevelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetUserWorkMomentsLevelReq.Unmarshal(m, b) @@ -2219,7 +2311,7 @@ func (m *SetUserWorkMomentsLevelResp) Reset() { *m = SetUserWorkMomentsL func (m *SetUserWorkMomentsLevelResp) String() string { return proto.CompactTextString(m) } func (*SetUserWorkMomentsLevelResp) ProtoMessage() {} func (*SetUserWorkMomentsLevelResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_1d2fa21c23f88044, []int{40} + return fileDescriptor_office_02f43b66ea327245, []int{42} } func (m *SetUserWorkMomentsLevelResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetUserWorkMomentsLevelResp.Unmarshal(m, b) @@ -2268,6 +2360,8 @@ func init() { proto.RegisterType((*LikeUser)(nil), "office.LikeUser") proto.RegisterType((*NotificationUser)(nil), "office.NotificationUser") proto.RegisterType((*Comment)(nil), "office.Comment") + proto.RegisterType((*PermissionGroup)(nil), "office.PermissionGroup") + proto.RegisterType((*WorkMomentUser)(nil), "office.WorkMomentUser") proto.RegisterType((*WorkMoment)(nil), "office.WorkMoment") proto.RegisterType((*CreateOneWorkMomentReq)(nil), "office.CreateOneWorkMomentReq") proto.RegisterType((*CreateOneWorkMomentResp)(nil), "office.CreateOneWorkMomentResp") @@ -2861,106 +2955,109 @@ var _OfficeService_serviceDesc = grpc.ServiceDesc{ Metadata: "office/office.proto", } -func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_1d2fa21c23f88044) } +func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_02f43b66ea327245) } -var fileDescriptor_office_1d2fa21c23f88044 = []byte{ - // 1559 bytes of a gzipped FileDescriptorProto +var fileDescriptor_office_02f43b66ea327245 = []byte{ + // 1604 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6e, 0x1c, 0xc5, - 0x13, 0xd7, 0xec, 0xa7, 0xb7, 0xd6, 0x89, 0xe3, 0x8e, 0x3f, 0x36, 0x93, 0xd8, 0xf1, 0x7f, 0x92, - 0xfc, 0x15, 0x3e, 0xb4, 0x46, 0x4b, 0x0e, 0x48, 0x88, 0x08, 0xc5, 0x9b, 0x58, 0x06, 0x6f, 0x62, - 0xc6, 0x36, 0x11, 0x1c, 0xb0, 0x26, 0xeb, 0xf6, 0x30, 0xf2, 0xee, 0xcc, 0x64, 0x7a, 0x6c, 0xe3, - 0x13, 0x52, 0x5e, 0x81, 0x03, 0x5c, 0x78, 0x0a, 0x1e, 0x01, 0x71, 0xe0, 0x84, 0x38, 0xf0, 0x06, - 0xbc, 0x03, 0x57, 0xd4, 0x3d, 0x1f, 0xdd, 0x3d, 0xd3, 0xb3, 0xbb, 0x19, 0x40, 0x82, 0x93, 0xb7, - 0xaa, 0xab, 0xab, 0xab, 0x7e, 0x5d, 0x55, 0x5d, 0x53, 0x86, 0xeb, 0xde, 0xc9, 0x89, 0x33, 0xc4, - 0x9b, 0xd1, 0x9f, 0xae, 0x1f, 0x78, 0xa1, 0x87, 0x1a, 0x11, 0xa5, 0xff, 0xef, 0x99, 0x8f, 0xdd, - 0xa3, 0x9d, 0xc1, 0xa6, 0x7f, 0x6a, 0x6f, 0xb2, 0xa5, 0x4d, 0x72, 0x7c, 0x7a, 0x74, 0x41, 0x36, - 0x2f, 0x48, 0x24, 0x6a, 0x3c, 0x04, 0xd8, 0xf2, 0xc6, 0x63, 0xcf, 0x35, 0x31, 0xf1, 0x51, 0x07, - 0x9a, 0x38, 0x08, 0xb6, 0xbc, 0x63, 0xdc, 0xd1, 0x36, 0xb4, 0xfb, 0x75, 0x33, 0x21, 0xd1, 0x0a, - 0x34, 0x70, 0x10, 0x0c, 0x88, 0xdd, 0xa9, 0x6c, 0x68, 0xf7, 0x5b, 0x66, 0x4c, 0x19, 0x1f, 0x40, - 0xf3, 0xc0, 0xb2, 0x0f, 0x09, 0x0e, 0xa8, 0xc8, 0x19, 0xc1, 0xc1, 0x4e, 0x9f, 0xed, 0x6d, 0x99, - 0x31, 0x85, 0x74, 0x98, 0xa3, 0xbf, 0x9e, 0x5a, 0x63, 0x1c, 0x6f, 0x4e, 0x69, 0xe3, 0x05, 0x54, - 0x0f, 0x2c, 0x1b, 0x2d, 0x41, 0x3d, 0xb4, 0xec, 0x74, 0x67, 0x44, 0x50, 0x6b, 0x42, 0xcb, 0x16, - 0xf6, 0x25, 0x24, 0x7a, 0x2b, 0x52, 0xb9, 0xeb, 0x90, 0xb0, 0x53, 0xdd, 0xa8, 0xde, 0x6f, 0xf7, - 0x16, 0xba, 0x31, 0x02, 0xb1, 0x35, 0x66, 0x2a, 0x60, 0x7c, 0x04, 0x57, 0xb7, 0x71, 0x48, 0x99, - 0x07, 0x96, 0x4d, 0x4c, 0xfc, 0xb2, 0xd0, 0xd2, 0x0d, 0x68, 0x7b, 0x3e, 0x0e, 0xac, 0xd0, 0xf1, - 0xdc, 0x9d, 0x7e, 0x7c, 0xa8, 0xc8, 0x32, 0x4e, 0x60, 0x41, 0xd2, 0x45, 0x7c, 0xd4, 0x03, 0x18, - 0xa6, 0x08, 0x32, 0x85, 0xed, 0x1e, 0x4a, 0xac, 0xe1, 0xd8, 0x9a, 0x82, 0x14, 0xba, 0x0d, 0xb5, - 0xd0, 0xb2, 0x49, 0xa7, 0xc2, 0x6c, 0x6f, 0x0b, 0xb6, 0x9b, 0x6c, 0xc1, 0x78, 0xa5, 0xc1, 0xfc, - 0x56, 0x80, 0xad, 0x10, 0x53, 0x1e, 0x7e, 0x29, 0x62, 0xa1, 0xc9, 0x58, 0x70, 0x67, 0x2a, 0x92, - 0x33, 0xeb, 0x00, 0xd1, 0xaf, 0x14, 0xa5, 0x96, 0x29, 0x70, 0xb2, 0xce, 0xd6, 0xf2, 0xce, 0x6e, - 0xc1, 0x15, 0xc1, 0x86, 0x72, 0xae, 0x1a, 0x5f, 0xc0, 0x7c, 0x1f, 0x8f, 0x70, 0xea, 0x48, 0x11, - 0xf6, 0x69, 0x08, 0x54, 0xc4, 0x10, 0xc8, 0x18, 0x59, 0x55, 0x1a, 0x29, 0xe8, 0x2f, 0x69, 0xe4, - 0xaf, 0x1a, 0xb4, 0xf6, 0x71, 0x58, 0xca, 0xc4, 0x0e, 0x34, 0x5d, 0x7c, 0xc1, 0x6e, 0x26, 0x32, - 0x2f, 0x21, 0x51, 0x17, 0x90, 0xe3, 0x0e, 0x03, 0x6c, 0x11, 0x7c, 0xc8, 0x6f, 0xa2, 0xc6, 0x6e, - 0x42, 0xb1, 0x82, 0xde, 0x84, 0x6b, 0x01, 0x3e, 0x3e, 0x1b, 0x8a, 0xd2, 0x75, 0x26, 0x9d, 0xe3, - 0x67, 0x81, 0x69, 0xe4, 0x81, 0xf9, 0x10, 0x20, 0x71, 0xa9, 0x24, 0x2a, 0xbf, 0x6b, 0x70, 0x75, - 0x1f, 0xbb, 0xc7, 0x03, 0x62, 0xf7, 0xa4, 0x30, 0x64, 0x96, 0x69, 0xcc, 0xb2, 0x84, 0xa4, 0x59, - 0x7e, 0x98, 0xa4, 0x64, 0x85, 0x2d, 0xa5, 0x34, 0xba, 0x05, 0xad, 0xed, 0xc0, 0x3b, 0xf3, 0x85, - 0x48, 0xe4, 0x0c, 0x0a, 0x37, 0xc1, 0xee, 0x71, 0x1a, 0x83, 0x31, 0x45, 0xe1, 0xa0, 0xbf, 0x70, - 0xb0, 0x37, 0xb2, 0xc2, 0x13, 0x2f, 0x18, 0xef, 0xf4, 0x3b, 0x75, 0x56, 0x95, 0x72, 0x7c, 0x6a, - 0xd7, 0xd0, 0x73, 0x43, 0xec, 0x86, 0x31, 0x14, 0x09, 0x99, 0x05, 0xaa, 0x99, 0x07, 0xea, 0x31, - 0x2c, 0x48, 0x5e, 0x96, 0x44, 0xeb, 0x1b, 0x0d, 0x16, 0xb7, 0x19, 0xe0, 0x54, 0xdb, 0xae, 0x17, - 0x95, 0x9a, 0x3e, 0xc0, 0x9e, 0x65, 0x3b, 0x2e, 0x3b, 0x2c, 0xd6, 0x74, 0xb7, 0x4b, 0x70, 0x70, - 0x8e, 0x83, 0x23, 0xcb, 0x77, 0x8e, 0x7c, 0x2b, 0xb0, 0xc6, 0xa4, 0x6b, 0xe2, 0x97, 0x67, 0x98, - 0x84, 0x5c, 0xd6, 0x14, 0xf6, 0x15, 0xe6, 0xf8, 0xf4, 0xf4, 0xf0, 0x00, 0xb8, 0x45, 0x52, 0xdd, - 0xd4, 0xa6, 0xd4, 0x4d, 0x11, 0xd3, 0x8a, 0x8c, 0xa9, 0x0e, 0x73, 0xf4, 0x06, 0x0e, 0x9c, 0x38, - 0xe6, 0xab, 0x66, 0x4a, 0x1b, 0x3f, 0x69, 0x80, 0xb2, 0x30, 0x94, 0xac, 0x92, 0x8f, 0x25, 0xec, - 0x2a, 0x6c, 0xcf, 0x3d, 0x25, 0x76, 0xc4, 0xf7, 0x5c, 0x82, 0x0b, 0xc0, 0x7b, 0x00, 0xed, 0x90, - 0x5b, 0x13, 0xbf, 0x17, 0x48, 0xf0, 0x3b, 0x5e, 0x32, 0x45, 0x31, 0x63, 0xc8, 0x6e, 0x33, 0xae, - 0xf4, 0x8f, 0x2e, 0x77, 0xfa, 0xff, 0x44, 0xf1, 0xb2, 0x19, 0x56, 0xd2, 0x21, 0x25, 0xb1, 0x5a, - 0x83, 0x6a, 0x68, 0xd9, 0x31, 0x48, 0xd2, 0x83, 0x42, 0xf9, 0xc6, 0x43, 0x98, 0xdb, 0x75, 0x4e, - 0x71, 0xe9, 0x77, 0xfa, 0x09, 0x5c, 0x7b, 0xea, 0x85, 0xce, 0x89, 0x33, 0x64, 0xa6, 0x97, 0xd6, - 0xf3, 0x87, 0x06, 0x4d, 0xea, 0x01, 0x8d, 0xa2, 0x12, 0xfb, 0x69, 0x4c, 0x9e, 0x58, 0x43, 0x7c, - 0x68, 0xee, 0x26, 0xc5, 0x36, 0x26, 0x29, 0xd8, 0x01, 0xf6, 0x47, 0x97, 0x51, 0x8d, 0x4c, 0x9e, - 0x33, 0x81, 0x85, 0xee, 0xc2, 0x95, 0x94, 0x64, 0xca, 0xeb, 0x4c, 0x46, 0x66, 0xd2, 0x5a, 0x15, - 0x87, 0x79, 0x5a, 0x56, 0x39, 0x43, 0xcc, 0x89, 0xa6, 0x9c, 0x13, 0xeb, 0x00, 0xc3, 0xe8, 0xb1, - 0xa4, 0x59, 0x31, 0xc7, 0xea, 0x94, 0xc0, 0x31, 0x7e, 0xac, 0x02, 0x3c, 0xf7, 0x82, 0xd3, 0x81, - 0xc7, 0x9c, 0x37, 0x60, 0xfe, 0x22, 0xa5, 0x52, 0x08, 0x24, 0x5e, 0x61, 0xd6, 0x8b, 0x00, 0x55, - 0x8b, 0x01, 0xaa, 0xc9, 0x00, 0x09, 0xa6, 0xd7, 0x65, 0xd3, 0xbb, 0xd0, 0x1a, 0xc5, 0xc1, 0x41, - 0x3a, 0x0d, 0x96, 0x1e, 0xd7, 0x92, 0x08, 0x4a, 0xa2, 0xc6, 0xe4, 0x22, 0xb4, 0x8a, 0x0c, 0xa3, - 0x3b, 0x24, 0x9d, 0xa6, 0x5c, 0x45, 0xe2, 0xbb, 0x35, 0x53, 0x01, 0x8a, 0x8b, 0x8f, 0x83, 0xb1, - 0x43, 0x08, 0x4d, 0xe2, 0x18, 0x17, 0xce, 0x41, 0x3d, 0x58, 0xe2, 0x94, 0xf0, 0xf0, 0xb5, 0xd8, - 0x33, 0xa1, 0x5c, 0x43, 0x0f, 0x60, 0x99, 0xf3, 0xd9, 0x43, 0x12, 0x6f, 0x02, 0xb6, 0x49, 0xbd, - 0x48, 0x21, 0xb7, 0x42, 0xe1, 0x84, 0x36, 0x13, 0x96, 0x78, 0x99, 0x5b, 0x9c, 0xcf, 0xdd, 0xa2, - 0x0b, 0x2b, 0x51, 0x4b, 0xf4, 0xcc, 0xc5, 0xfc, 0x36, 0x69, 0x69, 0xe8, 0x01, 0xf0, 0xcb, 0xcb, - 0x26, 0xad, 0x20, 0x2a, 0x48, 0xcd, 0xd0, 0x6f, 0x0e, 0x60, 0x55, 0x79, 0x5e, 0xc9, 0x37, 0xea, - 0x1c, 0x56, 0xa2, 0x66, 0x29, 0x67, 0xfe, 0x5f, 0x89, 0xc7, 0xe9, 0x75, 0x6e, 0x00, 0xab, 0xca, - 0x73, 0x4b, 0xba, 0x11, 0xc2, 0x12, 0x8d, 0xcb, 0x9c, 0x13, 0x45, 0x15, 0xc5, 0x80, 0xf9, 0xe7, - 0xa2, 0x73, 0x91, 0xf9, 0x12, 0x6f, 0x06, 0x27, 0x3e, 0x86, 0x65, 0xc5, 0xa9, 0x25, 0x5d, 0xf8, - 0x41, 0x83, 0xd5, 0x38, 0x59, 0x5e, 0xc7, 0x8d, 0x0b, 0x85, 0x1b, 0x17, 0x19, 0x37, 0xc4, 0x32, - 0x58, 0xcd, 0x97, 0x41, 0xa1, 0x0e, 0xd4, 0x26, 0xb6, 0x4a, 0xf5, 0x3c, 0x04, 0x4f, 0xa1, 0xa3, - 0x36, 0xba, 0x24, 0x0a, 0x5f, 0xc1, 0xd2, 0x36, 0x0e, 0xb9, 0xa2, 0xe4, 0x9d, 0x9d, 0x25, 0x1a, - 0x75, 0x98, 0xf3, 0xfc, 0x43, 0x31, 0x1e, 0x53, 0x7a, 0x86, 0xcb, 0xfc, 0x1a, 0x96, 0x15, 0x27, - 0x97, 0x7c, 0x7c, 0xe5, 0xdc, 0xaf, 0xcc, 0x92, 0xfb, 0xc6, 0x6f, 0x1a, 0xac, 0x6d, 0x7d, 0x69, - 0xb9, 0xb6, 0x80, 0xe3, 0x5e, 0x5a, 0xb7, 0xfe, 0x0e, 0x10, 0xe4, 0xca, 0x5b, 0x9d, 0xb9, 0xf2, - 0xd6, 0x26, 0x54, 0xde, 0xe9, 0x21, 0x72, 0x00, 0xeb, 0x93, 0xdc, 0x2a, 0x19, 0x28, 0xdf, 0x6a, - 0xec, 0xbe, 0xa8, 0x25, 0x5c, 0xef, 0xc4, 0x6f, 0xf9, 0xbe, 0xa2, 0x79, 0x7c, 0xfd, 0xc6, 0x7b, - 0x7a, 0x20, 0xfd, 0xac, 0xc1, 0x8a, 0xca, 0xb2, 0x92, 0xa1, 0xf4, 0x00, 0xda, 0xfc, 0x82, 0x93, - 0x01, 0x81, 0x2a, 0x96, 0x44, 0xb1, 0x4c, 0xa7, 0x5c, 0x2d, 0xd9, 0x29, 0x1b, 0xdf, 0x6b, 0x70, - 0x33, 0xf6, 0xe5, 0x49, 0xe0, 0x60, 0xf7, 0xf8, 0x5f, 0x86, 0xf5, 0x2f, 0x1a, 0xdc, 0x2a, 0xb6, - 0xef, 0xbf, 0x88, 0xf8, 0x77, 0x15, 0xb8, 0xc1, 0x8f, 0x10, 0x5b, 0xec, 0x01, 0xb1, 0xd1, 0x3b, - 0x70, 0xdd, 0x95, 0x59, 0x07, 0x97, 0x7e, 0x32, 0x9a, 0x53, 0x2d, 0xa1, 0x37, 0x68, 0x71, 0x1f, - 0x0b, 0x65, 0x28, 0xd7, 0x99, 0x25, 0xeb, 0xb9, 0xf2, 0x52, 0x9d, 0xf8, 0xe2, 0xd7, 0x0a, 0x3b, - 0xd0, 0x7a, 0x71, 0x07, 0xda, 0x90, 0x3b, 0xd0, 0xb7, 0x61, 0x91, 0x6b, 0xdf, 0x92, 0xda, 0xe8, - 0xfc, 0x82, 0x31, 0x02, 0x7d, 0x3f, 0x97, 0x57, 0xbb, 0xf8, 0x1c, 0x8f, 0xa6, 0x7c, 0x89, 0x8d, - 0xa8, 0x0c, 0x73, 0xbf, 0x6e, 0x46, 0xc4, 0x0c, 0xa1, 0xf5, 0x09, 0xdc, 0x2c, 0x3c, 0xad, 0x5c, - 0x60, 0xf5, 0x5e, 0x01, 0x5c, 0x79, 0xc6, 0x24, 0xf6, 0x71, 0x70, 0xee, 0x0c, 0x31, 0x7a, 0x08, - 0x6d, 0x61, 0x7a, 0x88, 0x56, 0x12, 0x05, 0xf2, 0x78, 0x52, 0x5f, 0x55, 0xf2, 0x89, 0x8f, 0xde, - 0x83, 0x56, 0x3a, 0x90, 0x43, 0x4b, 0xe9, 0xf1, 0xc2, 0x9c, 0x50, 0x5f, 0x56, 0x70, 0xa3, 0x9d, - 0xe9, 0x94, 0x8c, 0xef, 0x14, 0x07, 0x73, 0x7c, 0xa7, 0x3c, 0x4e, 0xdb, 0x84, 0x46, 0x34, 0x46, - 0x42, 0x8b, 0x89, 0x40, 0x3a, 0x29, 0xd3, 0x51, 0x96, 0x45, 0x7c, 0xea, 0xa4, 0x30, 0x4e, 0xe1, - 0x4e, 0xca, 0x93, 0x24, 0xee, 0x64, 0x76, 0xf6, 0xb2, 0xcd, 0xc6, 0xb5, 0xc2, 0xfc, 0x00, 0xdd, - 0x10, 0xf0, 0x90, 0xc7, 0x2b, 0xba, 0x5e, 0xb4, 0x94, 0x2a, 0x12, 0x3e, 0xae, 0x25, 0x45, 0xf2, - 0x97, 0xbd, 0xa4, 0x28, 0xfb, 0x3d, 0xfe, 0x29, 0x5c, 0x57, 0x34, 0xe1, 0x68, 0x5d, 0x86, 0x3a, - 0xdb, 0xc6, 0xe9, 0xb7, 0x27, 0xae, 0x47, 0x7a, 0x15, 0x5d, 0x31, 0xd7, 0xab, 0x6e, 0xd5, 0xb9, - 0xde, 0xa2, 0x96, 0x7a, 0x0f, 0x16, 0x73, 0x8d, 0x2a, 0xba, 0x25, 0x7e, 0xd1, 0xe5, 0x74, 0xae, - 0x4d, 0x58, 0x25, 0x3e, 0xfa, 0x0c, 0x96, 0x54, 0x7d, 0x1f, 0xba, 0x9d, 0xa9, 0x2e, 0x39, 0xbd, - 0x1b, 0x93, 0x05, 0x22, 0x63, 0x73, 0x8d, 0x18, 0x37, 0x56, 0xd5, 0x1d, 0x72, 0x63, 0xd5, 0x1d, - 0xdc, 0x29, 0xe8, 0xc5, 0x1d, 0x08, 0xba, 0x97, 0x5a, 0x34, 0xa9, 0xf9, 0xd2, 0xff, 0x3f, 0x8b, - 0x18, 0xf1, 0xd1, 0x7e, 0x3a, 0xc1, 0x11, 0xea, 0x06, 0x5a, 0xcb, 0x44, 0x93, 0xfc, 0x8e, 0xea, - 0xeb, 0x93, 0x96, 0x89, 0x8f, 0x30, 0x74, 0x8a, 0x9e, 0x39, 0x74, 0x27, 0xb3, 0x57, 0xf5, 0x50, - 0xeb, 0x77, 0xa7, 0x0b, 0x11, 0x1f, 0xbd, 0x80, 0xd5, 0x82, 0x9a, 0x87, 0x0c, 0x21, 0xb1, 0x0b, - 0x4a, 0xb0, 0x7e, 0x67, 0xaa, 0x0c, 0xf1, 0x1f, 0x2d, 0x7e, 0xbe, 0xd0, 0x8d, 0xff, 0x39, 0xf5, - 0x7e, 0xf4, 0xe7, 0x45, 0x83, 0xfd, 0xe7, 0xe9, 0xdd, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xaa, - 0xd5, 0x09, 0xd5, 0xbb, 0x1a, 0x00, 0x00, + 0x13, 0xd7, 0xec, 0xa7, 0xb7, 0xd6, 0x89, 0xe3, 0xb6, 0x63, 0x6f, 0x26, 0xb1, 0xe3, 0xff, 0x24, + 0xf9, 0x2b, 0x7c, 0xc8, 0x46, 0x4b, 0x84, 0x10, 0x88, 0x08, 0xc5, 0x9b, 0x58, 0x0b, 0xde, 0xc4, + 0x8c, 0x6d, 0x22, 0x38, 0x60, 0x4d, 0xd6, 0xed, 0x61, 0xe4, 0xdd, 0x99, 0xc9, 0xf4, 0xd8, 0x26, + 0x27, 0xa4, 0x9c, 0xb9, 0x71, 0x80, 0x0b, 0x4f, 0xc1, 0x33, 0x70, 0xe0, 0x84, 0x38, 0xf0, 0x06, + 0xbc, 0x03, 0x57, 0xd4, 0x3d, 0x33, 0xfd, 0x31, 0x1f, 0xbb, 0x9b, 0x01, 0x24, 0x38, 0x79, 0xab, + 0xbb, 0xba, 0xba, 0xea, 0xd7, 0xd5, 0xbf, 0xae, 0x29, 0xc3, 0x92, 0x77, 0x72, 0xe2, 0x0c, 0xf1, + 0x56, 0xf4, 0x67, 0xd3, 0x0f, 0xbc, 0xd0, 0x43, 0x8d, 0x48, 0xd2, 0xff, 0xf7, 0xc4, 0xc7, 0xee, + 0x51, 0x7f, 0xb0, 0xe5, 0x9f, 0xda, 0x5b, 0x6c, 0x6a, 0x8b, 0x1c, 0x9f, 0x1e, 0x5d, 0x90, 0xad, + 0x0b, 0x12, 0xa9, 0x1a, 0xf7, 0x01, 0xb6, 0xbd, 0xf1, 0xd8, 0x73, 0x4d, 0x4c, 0x7c, 0xd4, 0x81, + 0x26, 0x0e, 0x82, 0x6d, 0xef, 0x18, 0x77, 0xb4, 0x0d, 0xed, 0x6e, 0xdd, 0x4c, 0x44, 0xb4, 0x02, + 0x0d, 0x1c, 0x04, 0x03, 0x62, 0x77, 0x2a, 0x1b, 0xda, 0xdd, 0x96, 0x19, 0x4b, 0xc6, 0x07, 0xd0, + 0x3c, 0xb0, 0xec, 0x43, 0x82, 0x03, 0xaa, 0x72, 0x46, 0x70, 0xd0, 0xef, 0xb1, 0xb5, 0x2d, 0x33, + 0x96, 0x90, 0x0e, 0x73, 0xf4, 0xd7, 0x63, 0x6b, 0x8c, 0xe3, 0xc5, 0x5c, 0x36, 0x9e, 0x41, 0xf5, + 0xc0, 0xb2, 0xd1, 0x32, 0xd4, 0x43, 0xcb, 0xe6, 0x2b, 0x23, 0x81, 0x7a, 0x13, 0x5a, 0xb6, 0xb4, + 0x2e, 0x11, 0xd1, 0x1b, 0x91, 0xc9, 0x5d, 0x87, 0x84, 0x9d, 0xea, 0x46, 0xf5, 0x6e, 0xbb, 0xbb, + 0xb0, 0x19, 0x23, 0x10, 0x7b, 0x63, 0x72, 0x05, 0xe3, 0x23, 0xb8, 0xbc, 0x83, 0x43, 0x3a, 0x78, + 0x60, 0xd9, 0xc4, 0xc4, 0xcf, 0x0b, 0x3d, 0xdd, 0x80, 0xb6, 0xe7, 0xe3, 0xc0, 0x0a, 0x1d, 0xcf, + 0xed, 0xf7, 0xe2, 0x4d, 0xe5, 0x21, 0xe3, 0x04, 0x16, 0x14, 0x5b, 0xc4, 0x47, 0x5d, 0x80, 0x21, + 0x47, 0x90, 0x19, 0x6c, 0x77, 0x51, 0xe2, 0x8d, 0xc0, 0xd6, 0x94, 0xb4, 0xd0, 0x4d, 0xa8, 0x85, + 0x96, 0x4d, 0x3a, 0x15, 0xe6, 0x7b, 0x5b, 0xf2, 0xdd, 0x64, 0x13, 0xc6, 0x4b, 0x0d, 0xe6, 0xb7, + 0x03, 0x6c, 0x85, 0x98, 0x8e, 0xe1, 0xe7, 0x32, 0x16, 0x9a, 0x8a, 0x85, 0x08, 0xa6, 0xa2, 0x04, + 0xb3, 0x0e, 0x10, 0xfd, 0xe2, 0x28, 0xb5, 0x4c, 0x69, 0x24, 0x1d, 0x6c, 0x2d, 0x1b, 0xec, 0x36, + 0x5c, 0x92, 0x7c, 0x28, 0x17, 0xaa, 0xf1, 0x05, 0xcc, 0xf7, 0xf0, 0x08, 0xf3, 0x40, 0x8a, 0xb0, + 0xe7, 0x29, 0x50, 0x91, 0x53, 0x20, 0xe5, 0x64, 0x35, 0xd7, 0x49, 0xc9, 0x7e, 0x49, 0x27, 0x7f, + 0xd5, 0xa0, 0xb5, 0x8f, 0xc3, 0x52, 0x2e, 0x76, 0xa0, 0xe9, 0xe2, 0x0b, 0x76, 0x32, 0x91, 0x7b, + 0x89, 0x88, 0x36, 0x01, 0x39, 0xee, 0x30, 0xc0, 0x16, 0xc1, 0x87, 0xe2, 0x24, 0x6a, 0xec, 0x24, + 0x72, 0x66, 0xd0, 0xeb, 0x70, 0x25, 0xc0, 0xc7, 0x67, 0x43, 0x59, 0xbb, 0xce, 0xb4, 0x33, 0xe3, + 0x69, 0x60, 0x1a, 0x59, 0x60, 0x3e, 0x04, 0x48, 0x42, 0x2a, 0x89, 0xca, 0xef, 0x1a, 0x5c, 0xde, + 0xc7, 0xee, 0xf1, 0x80, 0xd8, 0x5d, 0x25, 0x0d, 0x99, 0x67, 0x1a, 0xf3, 0x2c, 0x11, 0xe9, 0x2d, + 0x3f, 0x4c, 0xae, 0x64, 0x85, 0x4d, 0x71, 0x19, 0xdd, 0x80, 0xd6, 0x4e, 0xe0, 0x9d, 0xf9, 0x52, + 0x26, 0x8a, 0x01, 0x0a, 0x37, 0xc1, 0xee, 0x31, 0xcf, 0xc1, 0x58, 0xa2, 0x70, 0xd0, 0x5f, 0x38, + 0xd8, 0x1b, 0x59, 0xe1, 0x89, 0x17, 0x8c, 0xfb, 0xbd, 0x4e, 0x9d, 0xb1, 0x52, 0x66, 0x9c, 0xfa, + 0x35, 0xf4, 0xdc, 0x10, 0xbb, 0x61, 0x0c, 0x45, 0x22, 0xa6, 0x81, 0x6a, 0x66, 0x81, 0x7a, 0x08, + 0x0b, 0x4a, 0x94, 0x25, 0xd1, 0xfa, 0x56, 0x83, 0xc5, 0x1d, 0x06, 0x38, 0xb5, 0xb6, 0xeb, 0x45, + 0x54, 0xd3, 0x03, 0xd8, 0xb3, 0x6c, 0xc7, 0x65, 0x9b, 0xc5, 0x96, 0x6e, 0x6f, 0x12, 0x1c, 0x9c, + 0xe3, 0xe0, 0xc8, 0xf2, 0x9d, 0x23, 0xdf, 0x0a, 0xac, 0x31, 0xd9, 0x34, 0xf1, 0xf3, 0x33, 0x4c, + 0x42, 0xa1, 0x6b, 0x4a, 0xeb, 0x0a, 0xef, 0xf8, 0xf4, 0xeb, 0xe1, 0x01, 0x08, 0x8f, 0x14, 0xde, + 0xd4, 0xa6, 0xf0, 0xa6, 0x8c, 0x69, 0x45, 0xc5, 0x54, 0x87, 0x39, 0x7a, 0x02, 0x07, 0x4e, 0x9c, + 0xf3, 0x55, 0x93, 0xcb, 0xc6, 0x4f, 0x1a, 0xa0, 0x34, 0x0c, 0x25, 0x59, 0xf2, 0xa1, 0x82, 0x5d, + 0x85, 0xad, 0xb9, 0x93, 0x8b, 0x1d, 0xf1, 0x3d, 0x97, 0xe0, 0x02, 0xf0, 0xee, 0x41, 0x3b, 0x14, + 0xde, 0xc4, 0xef, 0x05, 0x92, 0xe2, 0x8e, 0xa7, 0x4c, 0x59, 0xcd, 0x18, 0xb2, 0xd3, 0x8c, 0x99, + 0xfe, 0xc1, 0x8b, 0x7e, 0xef, 0x9f, 0x20, 0x2f, 0x9b, 0x61, 0xa5, 0x6c, 0x52, 0x12, 0xab, 0x35, + 0xa8, 0x86, 0x96, 0x1d, 0x83, 0xa4, 0x3c, 0x28, 0x74, 0xdc, 0xb8, 0x0f, 0x73, 0xbb, 0xce, 0x29, + 0x2e, 0xfd, 0x4e, 0x3f, 0x82, 0x2b, 0x8f, 0xbd, 0xd0, 0x39, 0x71, 0x86, 0xcc, 0xf5, 0xd2, 0x76, + 0xfe, 0xd0, 0xa0, 0x49, 0x23, 0xa0, 0x59, 0x54, 0x62, 0x3d, 0xcd, 0xc9, 0x13, 0x6b, 0x88, 0x0f, + 0xcd, 0xdd, 0x84, 0x6c, 0x63, 0x91, 0x82, 0x1d, 0x60, 0x7f, 0xf4, 0x22, 0xe2, 0xc8, 0xe4, 0x39, + 0x93, 0x86, 0xd0, 0x6d, 0xb8, 0xc4, 0x45, 0x66, 0xbc, 0xce, 0x74, 0xd4, 0x41, 0xca, 0x55, 0x71, + 0x9a, 0x73, 0x5a, 0x15, 0x03, 0xf2, 0x9d, 0x68, 0xaa, 0x77, 0x62, 0x1d, 0x60, 0x18, 0x3d, 0x96, + 0xf4, 0x56, 0xcc, 0x31, 0x9e, 0x92, 0x46, 0x8c, 0x3e, 0x2c, 0xec, 0xe1, 0x60, 0xec, 0x10, 0xe2, + 0x78, 0x2e, 0x23, 0x3f, 0xba, 0x95, 0x4d, 0x7f, 0x48, 0xaf, 0xba, 0x18, 0xa0, 0x5b, 0x31, 0x81, + 0x67, 0x55, 0x22, 0x1a, 0x3d, 0xb8, 0xfc, 0xd4, 0x0b, 0x4e, 0x07, 0x1e, 0x85, 0xb1, 0xf4, 0x51, + 0x7c, 0x53, 0x03, 0x10, 0x66, 0x90, 0x01, 0xf3, 0x17, 0x5c, 0xe2, 0x86, 0x94, 0xb1, 0x42, 0x1a, + 0x92, 0xb7, 0xa9, 0x16, 0x9f, 0x58, 0x4d, 0x3d, 0x31, 0x09, 0xcb, 0xba, 0x8a, 0xe5, 0x7b, 0x30, + 0x3f, 0x8a, 0xb3, 0x95, 0x51, 0x55, 0x83, 0x5d, 0xd9, 0x95, 0x24, 0xab, 0xd5, 0xe0, 0x4d, 0x45, + 0x97, 0x52, 0xdc, 0x30, 0x4a, 0x30, 0xd2, 0x69, 0xaa, 0x14, 0x17, 0x27, 0x9e, 0xc9, 0x15, 0xe8, + 0xa1, 0xf9, 0xfc, 0x50, 0x92, 0x43, 0x13, 0x23, 0xe8, 0x11, 0x20, 0x21, 0x71, 0x77, 0x5a, 0x13, + 0xdd, 0xc9, 0x59, 0x81, 0xfa, 0xb0, 0xe4, 0xab, 0x87, 0xcf, 0x0c, 0x01, 0x33, 0xb4, 0x9a, 0x18, + 0x4a, 0xe5, 0x87, 0x99, 0xb7, 0x06, 0xbd, 0x03, 0x60, 0x85, 0xdc, 0x95, 0xf6, 0x44, 0x57, 0x24, + 0xcd, 0x54, 0x7e, 0xce, 0x67, 0xf2, 0xd3, 0x85, 0x95, 0xa8, 0xd8, 0x7b, 0xe2, 0x62, 0x61, 0x86, + 0x92, 0x5e, 0x17, 0x40, 0x64, 0x41, 0x9a, 0x8e, 0x24, 0x55, 0x49, 0x6b, 0x86, 0x4a, 0x7a, 0x00, + 0xab, 0xb9, 0xfb, 0x95, 0x7c, 0x7d, 0xcf, 0x61, 0x25, 0x2a, 0x03, 0x33, 0xee, 0xff, 0x95, 0xc4, + 0x9e, 0xce, 0xe0, 0x03, 0x58, 0xcd, 0xdd, 0xb7, 0x64, 0x18, 0x21, 0x2c, 0x53, 0x9e, 0xce, 0x04, + 0x51, 0x74, 0xc1, 0x0d, 0x98, 0x7f, 0x2a, 0x07, 0x17, 0xb9, 0xaf, 0x8c, 0xcd, 0x10, 0xc4, 0xc7, + 0x70, 0x35, 0x67, 0xd7, 0x92, 0x21, 0xfc, 0xa8, 0xc1, 0x6a, 0x7c, 0xd3, 0x5e, 0x25, 0x8c, 0x8b, + 0x9c, 0x30, 0x2e, 0x52, 0x61, 0xc8, 0x04, 0x5f, 0xcd, 0x12, 0xbc, 0x44, 0x28, 0xb5, 0x89, 0x45, + 0x60, 0x3d, 0x0b, 0xc1, 0x63, 0xe8, 0xe4, 0x3b, 0x5d, 0x12, 0x85, 0xaf, 0x60, 0x79, 0x07, 0x87, + 0xc2, 0x50, 0x52, 0x41, 0xcc, 0x92, 0x8d, 0x3a, 0xcc, 0x79, 0xfe, 0xa1, 0x9c, 0x8f, 0x5c, 0x9e, + 0xe1, 0x30, 0xbf, 0x86, 0xab, 0x39, 0x3b, 0x97, 0x2c, 0x2b, 0xd4, 0xbb, 0x5f, 0x99, 0xe5, 0xee, + 0x1b, 0xbf, 0x69, 0xb0, 0xb6, 0xfd, 0xa5, 0xe5, 0xda, 0x12, 0x8e, 0x82, 0xda, 0xfe, 0x0e, 0x10, + 0x54, 0xda, 0xae, 0x66, 0x68, 0xbb, 0x0b, 0xcb, 0x2a, 0x09, 0x2b, 0x9f, 0x5e, 0xb9, 0x73, 0x33, + 0xa4, 0xc8, 0x01, 0xac, 0x4f, 0x0a, 0xab, 0x64, 0xa2, 0x7c, 0xa7, 0xb1, 0xf3, 0xa2, 0x9e, 0x08, + 0xbb, 0x13, 0xbb, 0x14, 0xbd, 0x9c, 0xb2, 0xf8, 0xd5, 0x3f, 0x29, 0xa6, 0x27, 0xd2, 0xcf, 0x1a, + 0xac, 0xe4, 0x79, 0x56, 0x32, 0x95, 0xee, 0x41, 0x5b, 0x1c, 0x70, 0xd2, 0xfa, 0xc8, 0xcb, 0x25, + 0x59, 0x2d, 0xf5, 0x0d, 0x50, 0x2d, 0xf9, 0x0d, 0x60, 0xfc, 0xa0, 0xc1, 0xf5, 0x38, 0x96, 0x47, + 0x81, 0x83, 0xdd, 0xe3, 0x7f, 0x19, 0xd6, 0xbf, 0x68, 0x70, 0xa3, 0xd8, 0xbf, 0xff, 0x22, 0xe2, + 0xdf, 0x57, 0xe0, 0x9a, 0xd8, 0x42, 0xfe, 0x78, 0x18, 0x10, 0x1b, 0xbd, 0x05, 0x4b, 0xae, 0x3a, + 0x74, 0xf0, 0xc2, 0x4f, 0x9a, 0x8e, 0x79, 0x53, 0xe8, 0x35, 0x4a, 0xee, 0x63, 0x89, 0x86, 0x32, + 0x65, 0x5d, 0x32, 0x9f, 0xa1, 0x97, 0xea, 0xc4, 0x17, 0xbf, 0x56, 0x58, 0xca, 0xd6, 0x8b, 0x4b, + 0xd9, 0x86, 0x5a, 0xca, 0xbe, 0x09, 0x8b, 0xc2, 0xfa, 0xb6, 0xf2, 0x81, 0x90, 0x9d, 0x30, 0x46, + 0xa0, 0xef, 0x67, 0xee, 0xd5, 0x2e, 0x3e, 0xc7, 0xa3, 0x29, 0xdf, 0x98, 0x23, 0xaa, 0xc3, 0xc2, + 0xaf, 0x9b, 0x91, 0x30, 0x43, 0x6a, 0x7d, 0x02, 0xd7, 0x0b, 0x77, 0x2b, 0x97, 0x58, 0xdd, 0x97, + 0x00, 0x97, 0x9e, 0x30, 0x8d, 0x7d, 0x1c, 0x9c, 0x3b, 0x43, 0x8c, 0xee, 0x43, 0x5b, 0xea, 0x8b, + 0x22, 0x5e, 0x90, 0xaa, 0x8d, 0x57, 0x7d, 0x35, 0x77, 0x9c, 0xf8, 0xe8, 0x5d, 0x68, 0xf1, 0x56, + 0x23, 0x5a, 0xe6, 0xdb, 0x4b, 0x1d, 0x50, 0xfd, 0x6a, 0xce, 0x68, 0xb4, 0x92, 0xf7, 0xff, 0xc4, + 0x4a, 0xb9, 0xe5, 0x28, 0x56, 0xaa, 0x8d, 0xc2, 0x2d, 0x68, 0x44, 0x0d, 0x32, 0xb4, 0x98, 0x28, + 0xf0, 0x1e, 0xa0, 0x8e, 0xd2, 0x43, 0xc4, 0xa7, 0x41, 0x4a, 0x8d, 0x22, 0x11, 0xa4, 0xda, 0x23, + 0x13, 0x41, 0xa6, 0xbb, 0x4a, 0x3b, 0xac, 0x11, 0x2d, 0x75, 0x46, 0xd0, 0x35, 0x09, 0x0f, 0xb5, + 0x71, 0xa4, 0xeb, 0x45, 0x53, 0xdc, 0x90, 0xd4, 0x36, 0x50, 0x0c, 0xa9, 0x3d, 0x0b, 0xc5, 0x50, + 0xba, 0xd3, 0xf0, 0x29, 0x2c, 0xe5, 0x14, 0xe1, 0x68, 0x5d, 0x85, 0x3a, 0x5d, 0xc6, 0xe9, 0x37, + 0x27, 0xce, 0x47, 0x76, 0x73, 0xaa, 0x62, 0x61, 0x37, 0xbf, 0x54, 0x17, 0x76, 0x8b, 0x4a, 0xea, + 0x3d, 0x58, 0xcc, 0x14, 0xaa, 0xe8, 0x46, 0xb2, 0x2a, 0xaf, 0x72, 0xd6, 0xd7, 0x26, 0xcc, 0x12, + 0x1f, 0x7d, 0x06, 0xcb, 0x79, 0x75, 0x1f, 0xba, 0x99, 0x62, 0x97, 0x8c, 0xdd, 0x8d, 0xc9, 0x0a, + 0x91, 0xb3, 0x99, 0x42, 0x4c, 0x38, 0x9b, 0x57, 0x1d, 0x0a, 0x67, 0xf3, 0x2b, 0xb8, 0x53, 0xd0, + 0x8b, 0x2b, 0x10, 0x74, 0x87, 0x7b, 0x34, 0xa9, 0xf8, 0xd2, 0xff, 0x3f, 0x8b, 0x1a, 0xf1, 0xd1, + 0x3e, 0xef, 0x4d, 0x49, 0xbc, 0x81, 0xd6, 0x52, 0xd9, 0xa4, 0xbe, 0xa3, 0xfa, 0xfa, 0xa4, 0x69, + 0xe2, 0x23, 0x0c, 0x9d, 0xa2, 0x67, 0x0e, 0xdd, 0x4a, 0xad, 0xcd, 0x7b, 0xa8, 0xf5, 0xdb, 0xd3, + 0x95, 0x88, 0x8f, 0x9e, 0xc1, 0x6a, 0x01, 0xe7, 0x21, 0x43, 0xba, 0xd8, 0x05, 0x14, 0xac, 0xdf, + 0x9a, 0xaa, 0x43, 0xfc, 0x07, 0x8b, 0x9f, 0x2f, 0x6c, 0xc6, 0xff, 0x76, 0x7b, 0x3f, 0xfa, 0xf3, + 0xac, 0xc1, 0xfe, 0xa7, 0xf6, 0xf6, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x70, 0x91, 0x17, 0x98, + 0x95, 0x1b, 0x00, 0x00, } diff --git a/pkg/proto/office/office.proto b/pkg/proto/office/office.proto index 0dd518e48..63d04955a 100644 --- a/pkg/proto/office/office.proto +++ b/pkg/proto/office/office.proto @@ -129,18 +129,28 @@ message Comment { int32 createTime = 8; } +message PermissionGroup { + string groupName = 1; + string groupID = 2; +} + +message WorkMomentUser { + string userID = 1; + string userName = 2; +} + message WorkMoment { string workMomentID = 1; string userID = 2; string userName = 3; string faceURL = 4; string content = 5; - repeated LikeUser likeUsers = 6; + repeated WorkMomentUser likeUserList = 6; repeated Comment comments = 7; int32 permission = 8; - repeated string permissionUserIDList = 9; - repeated string permissionGroupIDList = 10; - repeated string atUserIDList = 11; + repeated WorkMomentUser permissionUserList = 9; + repeated PermissionGroup permissionGroupList = 10; + repeated WorkMomentUser atUserList = 11; int32 createTime = 12; } From 33211bfb27c268370ca0fc376e9e4247c05683a8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 21 Apr 2022 11:18:11 +0800 Subject: [PATCH 04/57] workMoments --- internal/api/office/work_moments.go | 9 +++++++++ internal/rpc/office/office.go | 14 -------------- pkg/base_info/work_moments_struct.go | 16 ++++++++-------- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/internal/api/office/work_moments.go b/internal/api/office/work_moments.go index fcea9a1a0..05497727f 100644 --- a/internal/api/office/work_moments.go +++ b/internal/api/office/work_moments.go @@ -206,6 +206,15 @@ func GetWorkMomentByID(c *gin.Context) { if err := utils.CopyStructFields(&resp.Data.WorkMoment, respPb.WorkMoment); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } + if err := utils.CopyStructFields(&resp.Data.WorkMoment.AtUserIDList, respPb.WorkMoment.AtUserList); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed") + } + if err := utils.CopyStructFields(&resp.Data.WorkMoment.LikeUserList, respPb.WorkMoment.LikeUserList); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed") + } + if err := utils.CopyStructFields(&resp.Data.WorkMoment.Comments, respPb.WorkMoment.Comments); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed") + } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) c.JSON(http.StatusOK, resp) } diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index cdcff1112..847faba11 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -286,20 +286,6 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } workMoment.PermissionUserIDList = s.getPermissionUserIDList(req.OperationID, req.WorkMoment.PermissionGroupList, req.WorkMoment.PermissionUserList) - for _, user := range req.WorkMoment.AtUserList { - if user.UserName == "" { - userName, err := imdb.GetUserNameByUserID(user.UserID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserNameByUserID failed", user.UserID, err.Error()) - continue - } - user.UserName = userName - } - workMoment.AtUserList = append(workMoment.AtUserList, &db.AtUser{ - UserID: user.UserID, - UserName: user.UserName, - }) - } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "workMoment to create", workMoment) err = db.DB.CreateOneWorkMoment(&workMoment) if err != nil { diff --git a/pkg/base_info/work_moments_struct.go b/pkg/base_info/work_moments_struct.go index cb418b448..e69bcd4a1 100644 --- a/pkg/base_info/work_moments_struct.go +++ b/pkg/base_info/work_moments_struct.go @@ -45,19 +45,19 @@ type GetWorkMomentByIDReq struct { } type WorkMoment struct { - WorkMomentID string `json:"workMomentID"` - UserID string `json:"userID"` - Content string `json:"content"` - LikeUsers []*LikeUser `json:"likeUsers"` - Comments []*Comment `json:"comments"` + WorkMomentID string `json:"workMomentID"` + UserID string `json:"userID"` + Content string `json:"content"` + LikeUserList []*WorkMomentUser `json:"likeUsers"` + Comments []*Comment `json:"comments"` //Permission int32 `json:"permission"` //PermissionUserIDList []string `json:"permissionUserIDList"` //PermissionGroupIDList []string `json:"permissionGroupIDList"` - AtUserIDList []string `json:"atUserIDList"` - CreateTime int32 `json:"createTime,omitempty"` + AtUserIDList []*WorkMomentUser `json:"atUsers"` + CreateTime int32 `json:"createTime,omitempty"` } -type LikeUser struct { +type WorkMomentUser struct { UserID string `json:"userID"` UserName string `json:"userName"` } From 937ff63af90dd56b7ac6ab02eecf64ebada1b2d2 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 21 Apr 2022 11:34:15 +0800 Subject: [PATCH 05/57] workMoments --- internal/api/office/work_moments.go | 9 --------- pkg/base_info/work_moments_struct.go | 4 ++-- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/internal/api/office/work_moments.go b/internal/api/office/work_moments.go index 05497727f..fcea9a1a0 100644 --- a/internal/api/office/work_moments.go +++ b/internal/api/office/work_moments.go @@ -206,15 +206,6 @@ func GetWorkMomentByID(c *gin.Context) { if err := utils.CopyStructFields(&resp.Data.WorkMoment, respPb.WorkMoment); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - if err := utils.CopyStructFields(&resp.Data.WorkMoment.AtUserIDList, respPb.WorkMoment.AtUserList); err != nil { - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed") - } - if err := utils.CopyStructFields(&resp.Data.WorkMoment.LikeUserList, respPb.WorkMoment.LikeUserList); err != nil { - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed") - } - if err := utils.CopyStructFields(&resp.Data.WorkMoment.Comments, respPb.WorkMoment.Comments); err != nil { - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed") - } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/work_moments_struct.go b/pkg/base_info/work_moments_struct.go index e69bcd4a1..0908e0587 100644 --- a/pkg/base_info/work_moments_struct.go +++ b/pkg/base_info/work_moments_struct.go @@ -53,8 +53,8 @@ type WorkMoment struct { //Permission int32 `json:"permission"` //PermissionUserIDList []string `json:"permissionUserIDList"` //PermissionGroupIDList []string `json:"permissionGroupIDList"` - AtUserIDList []*WorkMomentUser `json:"atUsers"` - CreateTime int32 `json:"createTime,omitempty"` + AtUserList []*WorkMomentUser `json:"atUsers"` + CreateTime int32 `json:"createTime,omitempty"` } type WorkMomentUser struct { From 5eef365baf365f3f2f093f96a2557b3f2213105e Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 21 Apr 2022 11:52:31 +0800 Subject: [PATCH 06/57] workMoments --- internal/rpc/office/office.go | 4 ++-- pkg/base_info/work_moments_struct.go | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index 847faba11..5f967938f 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -280,11 +280,11 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea resp.CommonResp = &pbOffice.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } - workMoment.UserName = createUser.Nickname - workMoment.FaceURL = createUser.FaceURL if err := utils.CopyStructFields(&workMoment, req.WorkMoment); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } + workMoment.UserName = createUser.Nickname + workMoment.FaceURL = createUser.FaceURL workMoment.PermissionUserIDList = s.getPermissionUserIDList(req.OperationID, req.WorkMoment.PermissionGroupList, req.WorkMoment.PermissionUserList) log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "workMoment to create", workMoment) err = db.DB.CreateOneWorkMoment(&workMoment) diff --git a/pkg/base_info/work_moments_struct.go b/pkg/base_info/work_moments_struct.go index 0908e0587..f71033c9a 100644 --- a/pkg/base_info/work_moments_struct.go +++ b/pkg/base_info/work_moments_struct.go @@ -50,6 +50,8 @@ type WorkMoment struct { Content string `json:"content"` LikeUserList []*WorkMomentUser `json:"likeUsers"` Comments []*Comment `json:"comments"` + FaceURL string `json:"face_url"` + UserName string `json:"user_name"` //Permission int32 `json:"permission"` //PermissionUserIDList []string `json:"permissionUserIDList"` //PermissionGroupIDList []string `json:"permissionGroupIDList"` From 4796bf632c5708e012b15f71b1700ad3b6b6ca73 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 21 Apr 2022 12:53:28 +0800 Subject: [PATCH 07/57] quit group and dismiss group update --- internal/rpc/group/group.go | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index a6a5dadbc..7b237e5b1 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -557,7 +557,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) } func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.QuitGroupResp, error) { - log.NewError(req.OperationID, "QuitGroup args ", req.String()) + log.NewInfo(req.OperationID, "QuitGroup args ", req.String()) _, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.OpUserID) if err != nil { log.NewError(req.OperationID, "GetGroupMemberInfoByGroupIDAndUserID failed ", err.Error(), req.GroupID, req.OpUserID) @@ -575,16 +575,16 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) log.NewError(req.OperationID, "DelGroupMember failed ", req.GroupID, req.OpUserID) // return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil } - - chat.MemberQuitNotification(req) //modify quitter conversation info var reqPb pbUser.SetConversationReq + var c pbUser.Conversation reqPb.OperationID = req.OperationID - reqPb.Conversation.OwnerUserID = req.OpUserID - reqPb.Conversation.ConversationID = utils.GetConversationIDBySessionType(req.OpUserID, constant.GroupChatType) - reqPb.Conversation.ConversationType = constant.GroupChatType - reqPb.Conversation.GroupID = req.GroupID - reqPb.Conversation.IsNotInGroup = true + c.OwnerUserID = req.OpUserID + c.ConversationID = utils.GetConversationIDBySessionType(req.OpUserID, constant.GroupChatType) + c.ConversationType = constant.GroupChatType + c.GroupID = req.GroupID + c.IsNotInGroup = true + reqPb.Conversation = &c etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pbUser.NewUserClient(etcdConn) respPb, err := client.SetConversation(context.Background(), &reqPb) @@ -593,6 +593,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) } else { log.NewDebug(req.OpUserID, utils.GetSelfFuncName(), respPb.String()) } + chat.MemberQuitNotification(req) log.NewInfo(req.OperationID, "rpc QuitGroup return ", pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } @@ -1004,20 +1005,21 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou log.NewError(req.OperationID, "OperateGroupStatus failed ", req.GroupID, constant.GroupStatusDismissed) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - chat.GroupDismissedNotification(req) memberList, err := imdb.GetGroupMemberListByGroupID(req.GroupID) if err != nil { log.NewError(req.OperationID, "GetGroupMemberListByGroupID failed,", err.Error(), req.GroupID) } //modify quitter conversation info var reqPb pbUser.SetConversationReq + var c pbUser.Conversation for _, v := range memberList { reqPb.OperationID = req.OperationID - reqPb.Conversation.OwnerUserID = v.UserID - reqPb.Conversation.ConversationID = utils.GetConversationIDBySessionType(v.UserID, constant.GroupChatType) - reqPb.Conversation.ConversationType = constant.GroupChatType - reqPb.Conversation.GroupID = req.GroupID - reqPb.Conversation.IsNotInGroup = true + c.OwnerUserID = v.UserID + c.ConversationID = utils.GetConversationIDBySessionType(v.UserID, constant.GroupChatType) + c.ConversationType = constant.GroupChatType + c.GroupID = req.GroupID + c.IsNotInGroup = true + reqPb.Conversation = &c etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pbUser.NewUserClient(etcdConn) respPb, err := client.SetConversation(context.Background(), &reqPb) @@ -1027,6 +1029,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou log.NewDebug(req.OpUserID, utils.GetSelfFuncName(), respPb.String(), v.UserID) } } + chat.GroupDismissedNotification(req) err = imdb.DeleteGroupMemberByGroupID(req.GroupID) if err != nil { log.NewError(req.OperationID, "DeleteGroupMemberByGroupID failed ", req.GroupID) From 26be25c218456a235bd6192daaa7bd5d65ebf714 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 21 Apr 2022 14:58:57 +0800 Subject: [PATCH 08/57] quit group and dismiss group update --- internal/rpc/group/group.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7b237e5b1..e65a518a1 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -580,7 +580,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) var c pbUser.Conversation reqPb.OperationID = req.OperationID c.OwnerUserID = req.OpUserID - c.ConversationID = utils.GetConversationIDBySessionType(req.OpUserID, constant.GroupChatType) + c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) c.ConversationType = constant.GroupChatType c.GroupID = req.GroupID c.IsNotInGroup = true @@ -1015,7 +1015,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou for _, v := range memberList { reqPb.OperationID = req.OperationID c.OwnerUserID = v.UserID - c.ConversationID = utils.GetConversationIDBySessionType(v.UserID, constant.GroupChatType) + c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) c.ConversationType = constant.GroupChatType c.GroupID = req.GroupID c.IsNotInGroup = true From ff85575e98d7b51682c1b6e22ec1345cbc095cce Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 21 Apr 2022 16:14:26 +0800 Subject: [PATCH 09/57] workMoments --- internal/rpc/msg/work_moments_notification.go | 4 ++-- pkg/base_info/work_moments_struct.go | 6 +++--- pkg/common/db/mongoModel.go | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/rpc/msg/work_moments_notification.go b/internal/rpc/msg/work_moments_notification.go index 4631abf06..f9f64774e 100644 --- a/internal/rpc/msg/work_moments_notification.go +++ b/internal/rpc/msg/work_moments_notification.go @@ -11,7 +11,7 @@ import ( ) func WorkMomentSendNotification(operationID, sendID, recvID string, notificationMsg *pbOffice.WorkMomentNotificationMsg) { - log.NewInfo(operationID, utils.GetSelfFuncName(), recvID) + log.NewInfo(operationID, utils.GetSelfFuncName(), sendID, recvID, notificationMsg) WorkMomentNotification(operationID, sendID, recvID, notificationMsg) } @@ -29,7 +29,7 @@ func WorkMomentNotification(operationID, sendID, recvID string, m proto.Message) RecvID: recvID, MsgFrom: constant.UserMsgType, ContentType: constant.WorkMomentNotification, - SessionType: constant.UserMsgType, + SessionType: constant.SingleChatType, OperationID: operationID, } n.Content, err = proto.Marshal(m) diff --git a/pkg/base_info/work_moments_struct.go b/pkg/base_info/work_moments_struct.go index f71033c9a..ecc80f834 100644 --- a/pkg/base_info/work_moments_struct.go +++ b/pkg/base_info/work_moments_struct.go @@ -50,13 +50,13 @@ type WorkMoment struct { Content string `json:"content"` LikeUserList []*WorkMomentUser `json:"likeUsers"` Comments []*Comment `json:"comments"` - FaceURL string `json:"face_url"` - UserName string `json:"user_name"` + FaceURL string `json:"faceUrl"` + UserName string `json:"userName"` //Permission int32 `json:"permission"` //PermissionUserIDList []string `json:"permissionUserIDList"` //PermissionGroupIDList []string `json:"permissionGroupIDList"` AtUserList []*WorkMomentUser `json:"atUsers"` - CreateTime int32 `json:"createTime,omitempty"` + CreateTime int32 `json:"createTime"` } type WorkMomentUser struct { diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 4a08ffba4..0a593c5c7 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -575,7 +575,7 @@ type WorkMoment struct { AtUserList []*AtUser `bson:"at_user_list"` Comments []*Comment `bson:"comments"` PermissionUserIDList []string `bson:"permission_user_id_list"` - Permission int32 `bson:"is_private"` + Permission int32 `bson:"permission"` CreateTime int32 `bson:"create_time"` } From 704604f6fe791f652c594587efb972bdacfb1c2f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 21 Apr 2022 16:46:48 +0800 Subject: [PATCH 10/57] kick group invite group update --- internal/rpc/group/group.go | 126 +++++++++++++++++- .../mysql_model/im_mysql_model/user_model.go | 11 +- pkg/utils/utils.go | 38 ++++++ 3 files changed, 169 insertions(+), 6 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e65a518a1..4704fa191 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -259,7 +259,53 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite } resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) } - + var haveConUserID []string + conversations, err := imdb.GetConversationsByConversationIDMultipleOwner(okUserIDList, utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType)) + for _, v := range conversations { + haveConUserID = append(haveConUserID, v.OwnerUserID) + } + var reqPb pbUser.SetConversationReq + var c pbUser.Conversation + for _, v := range conversations { + reqPb.OperationID = req.OperationID + c.OwnerUserID = v.OwnerUserID + c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) + c.RecvMsgOpt = v.RecvMsgOpt + c.ConversationType = constant.GroupChatType + c.GroupID = req.GroupID + c.IsPinned = v.IsPinned + c.AttachedInfo = v.AttachedInfo + c.IsPrivateChat = v.IsPrivateChat + c.GroupAtType = v.GroupAtType + c.IsNotInGroup = false + c.Ex = v.Ex + reqPb.Conversation = &c + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.SetConversation(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error(), v.OwnerUserID) + } else { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "SetConversation success", respPb.String(), v.OwnerUserID) + } + } + for _, v := range utils.DifferenceString(haveConUserID, okUserIDList) { + reqPb.OperationID = req.OperationID + c.OwnerUserID = v + c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) + c.ConversationType = constant.GroupChatType + c.GroupID = req.GroupID + c.IsNotInGroup = false + reqPb.Conversation = &c + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.SetConversation(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error(), v) + } else { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "SetConversation success", respPb.String(), v) + } + } chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, req.Reason, okUserIDList) resp.ErrCode = 0 log.NewInfo(req.OperationID, "InviteUserToGroup rpc return ", resp.String()) @@ -379,9 +425,28 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou okUserIDList = append(okUserIDList, v) } - err = db.DB.DelGroupMember(req.GroupID, v) + //err = db.DB.DelGroupMember(req.GroupID, v) + //if err != nil { + // log.NewError(req.OperationID, "DelGroupMember failed ", err.Error(), req.GroupID, v) + //} + } + var reqPb pbUser.SetConversationReq + var c pbUser.Conversation + for _, v := range okUserIDList { + reqPb.OperationID = req.OperationID + c.OwnerUserID = v + c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) + c.ConversationType = constant.GroupChatType + c.GroupID = req.GroupID + c.IsNotInGroup = true + reqPb.Conversation = &c + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.SetConversation(context.Background(), &reqPb) if err != nil { - log.NewError(req.OperationID, "DelGroupMember failed ", err.Error(), req.GroupID, v) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error(), v) + } else { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "SetConversation success", respPb.String(), v) } } chat.MemberKickedNotification(req, okUserIDList) @@ -502,6 +567,38 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), member) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } + var reqPb pbUser.SetConversationReq + reqPb.OperationID = req.OperationID + var c pbUser.Conversation + conversation, err := imdb.GetConversation(req.FromUserID, utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType)) + if err != nil { + c.OwnerUserID = req.FromUserID + c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) + c.ConversationType = constant.GroupChatType + c.GroupID = req.GroupID + c.IsNotInGroup = false + } else { + c.OwnerUserID = conversation.OwnerUserID + c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) + c.RecvMsgOpt = conversation.RecvMsgOpt + c.ConversationType = constant.GroupChatType + c.GroupID = req.GroupID + c.IsPinned = conversation.IsPinned + c.AttachedInfo = conversation.AttachedInfo + c.IsPrivateChat = conversation.IsPrivateChat + c.GroupAtType = conversation.GroupAtType + c.IsNotInGroup = false + c.Ex = conversation.Ex + } + reqPb.Conversation = &c + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.SetConversation(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) + } else { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "SetConversation success", respPb.String()) + } chat.GroupApplicationAcceptedNotification(req) chat.MemberEnterNotification(req) } else if req.HandleResult == constant.GroupResponseRefuse { @@ -591,7 +688,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) } else { - log.NewDebug(req.OpUserID, utils.GetSelfFuncName(), respPb.String()) + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "SetConversation success", respPb.String()) } chat.MemberQuitNotification(req) log.NewInfo(req.OperationID, "rpc QuitGroup return ", pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}) @@ -914,6 +1011,25 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo OperationID: req.OperationID, OpUserID: req.OpUserId, } + var reqPb pbUser.SetConversationReq + var c pbUser.Conversation + for _, v := range resp.Success { + reqPb.OperationID = req.OperationID + c.OwnerUserID = v + c.ConversationID = utils.GetConversationIDBySessionType(req.GroupId, constant.GroupChatType) + c.ConversationType = constant.GroupChatType + c.GroupID = req.GroupId + c.IsNotInGroup = true + reqPb.Conversation = &c + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.SetConversation(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error(), v) + } else { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "SetConversation success", respPb.String(), v) + } + } chat.MemberKickedNotification(reqKick, resp.Success) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "success: ", resp.Success) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "failed: ", resp.Failed) @@ -1026,7 +1142,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error(), v.UserID) } else { - log.NewDebug(req.OpUserID, utils.GetSelfFuncName(), respPb.String(), v.UserID) + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "SetConversation success", respPb.String(), v.UserID) } } chat.GroupDismissedNotification(req) diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 5d1a08035..af7c15311 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -384,7 +384,7 @@ func GetConversation(OwnerUserID, conversationID string) (db.Conversation, error err = dbConn.Model(&db.Conversation{ OwnerUserID: OwnerUserID, ConversationID: conversationID, - }).Find(&conversation).Error + }).Take(&conversation).Error return conversation, err } @@ -397,3 +397,12 @@ func GetConversations(OwnerUserID string, conversationIDs []string) ([]db.Conver err = dbConn.Model(&db.Conversation{}).Where("conversation_id IN (?) and owner_user_id=?", conversationIDs, OwnerUserID).Find(&conversations).Error return conversations, err } +func GetConversationsByConversationIDMultipleOwner(OwnerUserIDList []string, conversationID string) ([]db.Conversation, error) { + var conversations []db.Conversation + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return conversations, err + } + err = dbConn.Model(&db.Conversation{}).Where("owner_user_id IN (?) and conversation_id=?", OwnerUserIDList, conversationID).Find(&conversations).Error + return conversations, err +} diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 8f0b52d72..52cb1bf2e 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -77,6 +77,44 @@ func Difference(slice1, slice2 []uint32) []uint32 { } return n } + +//Get the intersection of two slices +func IntersectString(slice1, slice2 []string) []string { + m := make(map[string]bool) + n := make([]string, 0) + for _, v := range slice1 { + m[v] = true + } + for _, v := range slice2 { + flag, _ := m[v] + if flag { + n = append(n, v) + } + } + return n +} + +//Get the diff of two slices +func DifferenceString(slice1, slice2 []string) []string { + m := make(map[string]bool) + n := make([]string, 0) + inter := IntersectString(slice1, slice2) + for _, v := range inter { + m[v] = true + } + for _, v := range slice1 { + if !m[v] { + n = append(n, v) + } + } + + for _, v := range slice2 { + if !m[v] { + n = append(n, v) + } + } + return n +} func OperationIDGenerator() string { return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) } From 5cd565306e316f4aca4af5a558241f90de5ffb2a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 21 Apr 2022 17:23:40 +0800 Subject: [PATCH 11/57] kick group invite group update --- internal/rpc/user/user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 11c635e90..23423bcd4 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -218,7 +218,7 @@ func (s *userServer) SetConversation(ctx context.Context, req *pbUser.SetConvers resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } - if groupInfo.Status == constant.GroupStatusDismissed { + if groupInfo.Status == constant.GroupStatusDismissed && !req.Conversation.IsNotInGroup { errMsg := "group status is dismissed" resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg} return resp, nil From 17d8a124cd2d216e75fa5c2601142465b72b9cc0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 21 Apr 2022 18:09:20 +0800 Subject: [PATCH 12/57] kick group invite group update --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index af7c15311..5e805686d 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -381,10 +381,7 @@ func GetConversation(OwnerUserID, conversationID string) (db.Conversation, error if err != nil { return conversation, err } - err = dbConn.Model(&db.Conversation{ - OwnerUserID: OwnerUserID, - ConversationID: conversationID, - }).Take(&conversation).Error + err = dbConn.Table("conversations").Where("owner_user_id=? and conversation_id=?", OwnerUserID, conversationID).Take(&conversation).Error return conversation, err } From 1443f5f997ab424dceb137771b59119624f9a6d3 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 21 Apr 2022 18:38:48 +0800 Subject: [PATCH 13/57] workMoments --- internal/rpc/msg/work_moments_notification.go | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/internal/rpc/msg/work_moments_notification.go b/internal/rpc/msg/work_moments_notification.go index f9f64774e..807266dfa 100644 --- a/internal/rpc/msg/work_moments_notification.go +++ b/internal/rpc/msg/work_moments_notification.go @@ -4,7 +4,6 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" pbOffice "Open_IM/pkg/proto/office" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" @@ -16,14 +15,13 @@ func WorkMomentSendNotification(operationID, sendID, recvID string, notification } func WorkMomentNotification(operationID, sendID, recvID string, m proto.Message) { + //var tips open_im_sdk.TipsComm marshaler := jsonpb.Marshaler{ OrigName: true, EnumsAsInts: false, EmitDefaults: false, } - var tips open_im_sdk.TipsComm - var err error - tips.JsonDetail, _ = marshaler.MarshalToString(m) + JsonDetail, _ := marshaler.MarshalToString(m) n := &NotificationMsg{ SendID: sendID, RecvID: recvID, @@ -32,10 +30,7 @@ func WorkMomentNotification(operationID, sendID, recvID string, m proto.Message) SessionType: constant.SingleChatType, OperationID: operationID, } - n.Content, err = proto.Marshal(m) - if err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), "proto marshal falied", err.Error()) - return - } + n.Content = []byte(JsonDetail) + log.NewInfo(operationID, utils.GetSelfFuncName(), JsonDetail) Notification(n) } From 159a9e00c8e93a2abb914de7e6e6dee1ff43d992 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 22 Apr 2022 15:12:10 +0800 Subject: [PATCH 14/57] conversation update --- internal/rpc/msg/send_msg.go | 15 + pkg/common/constant/constant.go | 7 + pkg/proto/conversation/conversation.proto | 302 ++++++++++++ pkg/proto/proto_dir.cfg | 1 + pkg/proto/sdk_ws/ws.pb.go | 543 +++++++++++----------- pkg/proto/sdk_ws/ws.proto | 7 +- 6 files changed, 605 insertions(+), 270 deletions(-) create mode 100644 pkg/proto/conversation/conversation.proto diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 74d0e6ac7..45f3ce70d 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -246,6 +246,21 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } case constant.MemberQuitNotification: addUidList = append(addUidList, pb.MsgData.SendID) + case constant.AtText: + //tagMe := utils.IsContain(c.loginUserID, s.AtElem.AtUserList) + //tagAll := utils.IsContain(constant.AtAllString, pb.MsgData.AtUserIDList) + //if tagAll { + // if tagMe { + // lc.GroupAtType = constant.AtAllAtMe + // return + // } + // lc.GroupAtType = constant.AtAll + // return + //} + //if tagMe { + // lc.GroupAtType = constant.AtMe + //} + default: } groupID := pb.MsgData.GroupID diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 9e2046b15..87eae8d4b 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -195,6 +195,13 @@ const ( WorkMomentLikeNotification = 1 WorkMomentAtUserNotification = 2 ) +const ( + AtAllString = "AtAllTag" + AtNormal = 0 + AtMe = 1 + AtAll = 2 + AtAllAtMe = 3 +) var ContentType2PushContent = map[int64]string{ Picture: "[图片]", diff --git a/pkg/proto/conversation/conversation.proto b/pkg/proto/conversation/conversation.proto new file mode 100644 index 000000000..7821eeaaf --- /dev/null +++ b/pkg/proto/conversation/conversation.proto @@ -0,0 +1,302 @@ +syntax = "proto3"; +option go_package = "./conversation;conversation"; +package conversation; + +message CommonResp{ + int32 errCode = 1; + string errMsg = 2; +} + +message DeleteUsersReq{ + repeated string DeleteUserIDList = 2; + string OpUserID = 3; + string OperationID = 4; +} + +message DeleteUsersResp{ + CommonResp CommonResp = 1; + repeated string FailedUserIDList = 2; +} + + +message GetAllUserIDReq{ + string opUserID = 1; + string operationID = 2; +} +message GetAllUserIDResp{ + CommonResp CommonResp = 1; + repeated string UserIDList = 2; +} + + +message AccountCheckReq{ + repeated string CheckUserIDList = 1; + string OpUserID = 2; + string OperationID = 3; + +} +message AccountCheckResp{ + CommonResp commonResp = 1; + message SingleUserStatus { + string userID = 1; + string accountStatus = 2; + } + repeated SingleUserStatus ResultList = 2; +} + + +message GetUserInfoReq{ + repeated string userIDList = 1; + string OpUserID = 2; + string OperationID = 3; +} +message GetUserInfoResp{ + CommonResp commonResp = 1; + repeated server_api_params.UserInfo UserInfoList = 3; +} + + + +message UpdateUserInfoReq{ + server_api_params.UserInfo UserInfo = 1; + string OpUserID = 2; + string operationID = 3; +} +message UpdateUserInfoResp{ + CommonResp commonResp = 1; +} + +message Conversation{ + string OwnerUserID = 1; + string ConversationID = 2; + int32 RecvMsgOpt = 3; + int32 ConversationType = 4; + string UserID = 5; + string GroupID = 6; + int32 UnreadCount = 7; + int64 DraftTextTime = 8; + bool IsPinned = 9; + string AttachedInfo = 10; + bool IsPrivateChat = 11; + int32 GroupAtType = 12; + bool IsNotInGroup = 13; + string Ex = 14; +} + +message ModifyConversationFiledReq{ + Conversation Conversation = 1; + int32 notificationType = 2; + string OperationID = 3; +} + +message SetConversationResp{ + CommonResp commonResp = 1; +} + +message SetRecvMsgOptReq { + string OwnerUserID = 1; + string ConversationID = 2; + int32 RecvMsgOpt = 3; + int32 notificationType = 4; + string OperationID = 5; +} + +message SetRecvMsgOptResp { + CommonResp commonResp = 1; +} + +message GetConversationReq{ + string ConversationID = 1; + string OwnerUserID = 2; + string OperationID = 3; +} + +message GetConversationResp{ + CommonResp commonResp = 1; + Conversation Conversation = 2; +} + +message GetConversationsReq{ + string OwnerUserID = 1; + repeated string ConversationIDs = 2; + string OperationID = 3; +} + +message GetConversationsResp{ + CommonResp commonResp = 1; + repeated Conversation Conversations = 2; +} + +message GetAllConversationsReq{ + string OwnerUserID = 1; + string OperationID = 2; +} + +message GetAllConversationsResp{ + CommonResp commonResp = 1; + repeated Conversation Conversations = 2; +} + +message BatchSetConversationsReq{ + repeated Conversation Conversations = 1; + string OwnerUserID = 2; + int32 notificationType = 3; + string OperationID = 4; +} + +message BatchSetConversationsResp{ + CommonResp commonResp = 1; + repeated string Success = 2; + repeated string Failed = 3; +} + +message ResignUserReq{ + string UserId = 1; + string OperationID = 2; +} + +message ResignUserResp{ + CommonResp commonResp = 1; +} + +message GetUserByIdReq{ + string UserId = 1; + string OperationID = 2; +} + +message User{ + string ProfilePhoto = 1; + string Nickname = 2; + string UserId = 3; + string CreateTime = 4; + bool IsBlock = 5; +} + +message GetUserByIdResp{ + CommonResp CommonResp = 1; + User user = 2; +} + +message GetUsersByNameReq { + string UserName = 1; + server_api_params.RequestPagination Pagination = 2; + string OperationID = 3; +} + +message GetUsersByNameResp { + repeated User users = 1; + server_api_params.ResponsePagination Pagination = 2; + int32 UserNums = 3; +} + +message AlterUserReq{ + string UserId = 1; + string OperationID = 2; + int64 PhoneNumber = 3; + string Nickname = 4; + string Email = 5; + string OpUserId = 6; +} + +message AlterUserResp{ + CommonResp CommonResp = 1; +} + +message GetUsersReq { + string OperationID = 1; + server_api_params.RequestPagination Pagination = 2; + string UserName = 3; +} + +message GetUsersResp{ + CommonResp CommonResp = 1; + repeated User user = 2; + server_api_params.ResponsePagination Pagination = 3; + int32 UserNums = 4; +} + +message AddUserReq{ + string OperationID = 1; + string PhoneNumber = 2; + string UserId = 3; + string name = 4; + string OpUserId = 5; +} + +message AddUserResp{ + CommonResp CommonResp = 1; +} + + +message BlockUserReq{ + string UserId = 1; + string EndDisableTime = 2; + string OperationID = 3; + string OpUserId = 4; +} + +message BlockUserResp{ + CommonResp CommonResp = 1; +} + +message UnBlockUserReq{ + string UserId = 1; + string OperationID = 2; + string OpUserId = 3; +} + +message UnBlockUserResp{ + CommonResp CommonResp = 1; +} + +message GetBlockUsersReq{ + server_api_params.RequestPagination Pagination = 1; + string OperationID = 2; + int32 BlockUserNum = 3; +} + +message BlockUser { + User User = 1; + string BeginDisableTime = 2; + string EndDisableTime = 3; +} + +message GetBlockUsersResp{ + CommonResp CommonResp = 1; + repeated BlockUser BlockUsers = 2; + server_api_params.ResponsePagination Pagination = 3; + int32 UserNums = 4; +} + +message GetBlockUserByIdReq { + string User_id = 1; + string OperationID = 2; +} + +message GetBlockUserByIdResp { + BlockUser BlockUser = 2; +} + +message DeleteUserReq { + string User_id = 1; + string OperationID = 2; + string OpUserId = 3; +} + +message DeleteUserResp { + CommonResp CommonResp = 1; +} + + + +service user { + rpc AccountCheck(AccountCheckReq)returns(AccountCheckResp); + rpc GetConversation(GetConversationReq)returns(GetConversationResp); + rpc GetAllConversations(GetAllConversationsReq)returns(GetAllConversationsResp); + rpc GetConversations(GetConversationsReq)returns(GetConversationsResp); + rpc BatchSetConversations(BatchSetConversationsReq)returns(BatchSetConversationsResp); + rpc SetConversation(SetConversationReq)returns(SetConversationResp); + rpc SetRecvMsgOpt(SetRecvMsgOptReq)returns(SetRecvMsgOptResp); + + +} diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index bc7945472..99b94de97 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -12,4 +12,5 @@ all_proto=( push/push.proto relay/relay.proto sdk_ws/ws.proto + conversation/conversation.proto ) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index f53793083..fd5fd76a0 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -40,7 +40,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{0} + return fileDescriptor_ws_e4200fdb78b83da6, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -165,7 +165,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{1} + return fileDescriptor_ws_e4200fdb78b83da6, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -277,7 +277,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{2} + return fileDescriptor_ws_e4200fdb78b83da6, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -352,7 +352,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{3} + return fileDescriptor_ws_e4200fdb78b83da6, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -459,7 +459,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{4} + return fileDescriptor_ws_e4200fdb78b83da6, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -544,7 +544,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{5} + return fileDescriptor_ws_e4200fdb78b83da6, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -625,7 +625,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{6} + return fileDescriptor_ws_e4200fdb78b83da6, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -733,7 +733,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{7} + return fileDescriptor_ws_e4200fdb78b83da6, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -878,7 +878,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{8} + return fileDescriptor_ws_e4200fdb78b83da6, []int{8} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -989,7 +989,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{9} + return fileDescriptor_ws_e4200fdb78b83da6, []int{9} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1103,7 +1103,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{10} + return fileDescriptor_ws_e4200fdb78b83da6, []int{10} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1184,7 +1184,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{11} + return fileDescriptor_ws_e4200fdb78b83da6, []int{11} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1230,7 +1230,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{12} + return fileDescriptor_ws_e4200fdb78b83da6, []int{12} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1277,7 +1277,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{13} + return fileDescriptor_ws_e4200fdb78b83da6, []int{13} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1331,7 +1331,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{14} + return fileDescriptor_ws_e4200fdb78b83da6, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1382,7 +1382,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_ws_d729044b7cff282f, []int{15} + return fileDescriptor_ws_e4200fdb78b83da6, []int{15} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1414,7 +1414,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_ws_d729044b7cff282f, []int{16} + return fileDescriptor_ws_e4200fdb78b83da6, []int{16} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1461,7 +1461,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{17} + return fileDescriptor_ws_e4200fdb78b83da6, []int{17} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1518,9 +1518,10 @@ type MsgData struct { Seq uint32 `protobuf:"varint,14,opt,name=seq" json:"seq,omitempty"` SendTime int64 `protobuf:"varint,15,opt,name=sendTime" json:"sendTime,omitempty"` CreateTime int64 `protobuf:"varint,16,opt,name=createTime" json:"createTime,omitempty"` - Status int32 `protobuf:"varint,17,opt,name=status" json:"status,omitempty"` - Options map[string]bool `protobuf:"bytes,18,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + AtUserIDList []string `protobuf:"bytes,17,rep,name=atUserIDList" json:"atUserIDList,omitempty"` + Status int32 `protobuf:"varint,18,opt,name=status" json:"status,omitempty"` + Options map[string]bool `protobuf:"bytes,19,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,20,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1530,7 +1531,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{18} + return fileDescriptor_ws_e4200fdb78b83da6, []int{18} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1655,6 +1656,13 @@ func (m *MsgData) GetCreateTime() int64 { return 0 } +func (m *MsgData) GetAtUserIDList() []string { + if m != nil { + return m.AtUserIDList + } + return nil +} + func (m *MsgData) GetStatus() int32 { if m != nil { return m.Status @@ -1691,7 +1699,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{19} + return fileDescriptor_ws_e4200fdb78b83da6, []int{19} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1759,7 +1767,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{20} + return fileDescriptor_ws_e4200fdb78b83da6, []int{20} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1816,7 +1824,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{21} + return fileDescriptor_ws_e4200fdb78b83da6, []int{21} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1885,7 +1893,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{22} + return fileDescriptor_ws_e4200fdb78b83da6, []int{22} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1940,7 +1948,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{23} + return fileDescriptor_ws_e4200fdb78b83da6, []int{23} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1996,7 +2004,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{24} + return fileDescriptor_ws_e4200fdb78b83da6, []int{24} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2051,7 +2059,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{25} + return fileDescriptor_ws_e4200fdb78b83da6, []int{25} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2106,7 +2114,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{26} + return fileDescriptor_ws_e4200fdb78b83da6, []int{26} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2162,7 +2170,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{27} + return fileDescriptor_ws_e4200fdb78b83da6, []int{27} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2225,7 +2233,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{28} + return fileDescriptor_ws_e4200fdb78b83da6, []int{28} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2288,7 +2296,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{29} + return fileDescriptor_ws_e4200fdb78b83da6, []int{29} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2350,7 +2358,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{30} + return fileDescriptor_ws_e4200fdb78b83da6, []int{30} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2404,7 +2412,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{31} + return fileDescriptor_ws_e4200fdb78b83da6, []int{31} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2460,7 +2468,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{32} + return fileDescriptor_ws_e4200fdb78b83da6, []int{32} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2529,7 +2537,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{33} + return fileDescriptor_ws_e4200fdb78b83da6, []int{33} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2590,7 +2598,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{34} + return fileDescriptor_ws_e4200fdb78b83da6, []int{34} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -2644,7 +2652,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{35} + return fileDescriptor_ws_e4200fdb78b83da6, []int{35} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -2699,7 +2707,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{36} + return fileDescriptor_ws_e4200fdb78b83da6, []int{36} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -2759,7 +2767,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{37} + return fileDescriptor_ws_e4200fdb78b83da6, []int{37} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -2806,7 +2814,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{38} + return fileDescriptor_ws_e4200fdb78b83da6, []int{38} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2859,7 +2867,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{39} + return fileDescriptor_ws_e4200fdb78b83da6, []int{39} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2905,7 +2913,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{40} + return fileDescriptor_ws_e4200fdb78b83da6, []int{40} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2945,7 +2953,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{41} + return fileDescriptor_ws_e4200fdb78b83da6, []int{41} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2992,7 +3000,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{42} + return fileDescriptor_ws_e4200fdb78b83da6, []int{42} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3040,7 +3048,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{43} + return fileDescriptor_ws_e4200fdb78b83da6, []int{43} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3093,7 +3101,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{44} + return fileDescriptor_ws_e4200fdb78b83da6, []int{44} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3131,7 +3139,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{45} + return fileDescriptor_ws_e4200fdb78b83da6, []int{45} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3169,7 +3177,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{46} + return fileDescriptor_ws_e4200fdb78b83da6, []int{46} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3207,7 +3215,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{47} + return fileDescriptor_ws_e4200fdb78b83da6, []int{47} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3246,7 +3254,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{48} + return fileDescriptor_ws_e4200fdb78b83da6, []int{48} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3285,7 +3293,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{49} + return fileDescriptor_ws_e4200fdb78b83da6, []int{49} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3325,7 +3333,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{50} + return fileDescriptor_ws_e4200fdb78b83da6, []int{50} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3379,7 +3387,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{51} + return fileDescriptor_ws_e4200fdb78b83da6, []int{51} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3425,7 +3433,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{52} + return fileDescriptor_ws_e4200fdb78b83da6, []int{52} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3478,7 +3486,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{53} + return fileDescriptor_ws_e4200fdb78b83da6, []int{53} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -3745,7 +3753,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{54} + return fileDescriptor_ws_e4200fdb78b83da6, []int{54} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4013,7 +4021,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{55} + return fileDescriptor_ws_e4200fdb78b83da6, []int{55} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4109,7 +4117,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{56} + return fileDescriptor_ws_e4200fdb78b83da6, []int{56} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4164,7 +4172,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{57} + return fileDescriptor_ws_e4200fdb78b83da6, []int{57} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4225,7 +4233,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{58} + return fileDescriptor_ws_e4200fdb78b83da6, []int{58} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4280,7 +4288,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{59} + return fileDescriptor_ws_e4200fdb78b83da6, []int{59} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4341,7 +4349,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{60} + return fileDescriptor_ws_e4200fdb78b83da6, []int{60} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4396,7 +4404,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{61} + return fileDescriptor_ws_e4200fdb78b83da6, []int{61} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4454,7 +4462,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{62} + return fileDescriptor_ws_e4200fdb78b83da6, []int{62} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -4489,7 +4497,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{63} + return fileDescriptor_ws_e4200fdb78b83da6, []int{63} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -4557,7 +4565,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{64} + return fileDescriptor_ws_e4200fdb78b83da6, []int{64} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -4611,7 +4619,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{65} + return fileDescriptor_ws_e4200fdb78b83da6, []int{65} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -4662,7 +4670,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{66} + return fileDescriptor_ws_e4200fdb78b83da6, []int{66} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -4697,7 +4705,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{67} + return fileDescriptor_ws_e4200fdb78b83da6, []int{67} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -4762,7 +4770,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{68} + return fileDescriptor_ws_e4200fdb78b83da6, []int{68} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -4796,7 +4804,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{69} + return fileDescriptor_ws_e4200fdb78b83da6, []int{69} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -4856,7 +4864,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d729044b7cff282f, []int{70} + return fileDescriptor_ws_e4200fdb78b83da6, []int{70} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -4965,198 +4973,199 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_d729044b7cff282f) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_e4200fdb78b83da6) } -var fileDescriptor_ws_d729044b7cff282f = []byte{ - // 3033 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x6f, 0x24, 0x47, - 0xf5, 0xff, 0x76, 0x8f, 0x67, 0xec, 0x79, 0xe3, 0xf1, 0x8f, 0xde, 0xfd, 0x3a, 0x83, 0xd9, 0x2c, - 0xa6, 0xb1, 0x42, 0x08, 0xb0, 0x41, 0x89, 0x90, 0x20, 0x81, 0x45, 0x6b, 0x7b, 0x7f, 0x85, 0xb5, - 0xd7, 0xe9, 0xd9, 0x25, 0x08, 0x90, 0xa2, 0xf6, 0x74, 0x79, 0xdc, 0x71, 0x77, 0x55, 0x4f, 0xff, - 0xf0, 0xee, 0x22, 0x24, 0x24, 0x90, 0x10, 0x37, 0x4e, 0x70, 0xe0, 0x82, 0xc4, 0x05, 0x81, 0xa2, - 0x28, 0x42, 0x20, 0x71, 0x88, 0x10, 0x07, 0xfe, 0x01, 0x8e, 0x88, 0x1b, 0x67, 0xae, 0x1c, 0x90, - 0x90, 0x40, 0x55, 0xaf, 0xba, 0xbb, 0xaa, 0x7b, 0xc6, 0x9e, 0x1d, 0x59, 0xd9, 0x8d, 0x96, 0xdb, - 0xbc, 0xd7, 0xf5, 0x5e, 0xbd, 0xfa, 0xbc, 0x57, 0xf5, 0x5e, 0xfd, 0x18, 0x58, 0x4e, 0xbc, 0xe3, - 0xb7, 0x1f, 0x24, 0x2f, 0x3f, 0x48, 0xae, 0x44, 0x31, 0x4b, 0x99, 0xb5, 0x9a, 0x90, 0xf8, 0x84, - 0xc4, 0x6f, 0xbb, 0x91, 0xff, 0x76, 0xe4, 0xc6, 0x6e, 0x98, 0xd8, 0xff, 0x34, 0xa1, 0x7d, 0x33, - 0x66, 0x59, 0x74, 0x9b, 0x1e, 0x32, 0xab, 0x07, 0xf3, 0x43, 0x41, 0xec, 0xf4, 0x8c, 0x0d, 0xe3, - 0xc5, 0xb6, 0x93, 0x93, 0xd6, 0x25, 0x68, 0x8b, 0x9f, 0x7b, 0x6e, 0x48, 0x7a, 0xa6, 0xf8, 0x56, - 0x32, 0x2c, 0x1b, 0x16, 0x29, 0x4b, 0xfd, 0x43, 0x7f, 0xe0, 0xa6, 0x3e, 0xa3, 0xbd, 0x86, 0x68, - 0xa0, 0xf1, 0x78, 0x1b, 0x9f, 0xa6, 0x31, 0xf3, 0xb2, 0x81, 0x68, 0x33, 0x87, 0x6d, 0x54, 0x1e, - 0xef, 0xff, 0xd0, 0x1d, 0x90, 0xfb, 0xce, 0x9d, 0x5e, 0x13, 0xfb, 0x97, 0xa4, 0xb5, 0x01, 0x1d, - 0xf6, 0x80, 0x92, 0xf8, 0x7e, 0x42, 0xe2, 0xdb, 0x3b, 0xbd, 0x96, 0xf8, 0xaa, 0xb2, 0xac, 0xcb, - 0x00, 0x83, 0x98, 0xb8, 0x29, 0xb9, 0xe7, 0x87, 0xa4, 0x37, 0xbf, 0x61, 0xbc, 0xd8, 0x75, 0x14, - 0x0e, 0xd7, 0x10, 0x92, 0xf0, 0x80, 0xc4, 0xdb, 0x2c, 0xa3, 0x69, 0x6f, 0x41, 0x34, 0x50, 0x59, - 0xd6, 0x12, 0x98, 0xe4, 0x61, 0xaf, 0x2d, 0x54, 0x9b, 0xe4, 0xa1, 0xb5, 0x06, 0xad, 0x24, 0x75, - 0xd3, 0x2c, 0xe9, 0xc1, 0x86, 0xf1, 0x62, 0xd3, 0x91, 0x94, 0xb5, 0x09, 0x5d, 0xa1, 0x97, 0xe5, - 0xd6, 0x74, 0x84, 0x88, 0xce, 0x2c, 0x10, 0xbb, 0xf7, 0x28, 0x22, 0xbd, 0x45, 0xa1, 0xa0, 0x64, - 0xd8, 0x7f, 0x35, 0xe1, 0x82, 0xc0, 0x7d, 0x57, 0x18, 0x70, 0x23, 0x0b, 0x82, 0x33, 0x3c, 0xb0, - 0x06, 0xad, 0x0c, 0xbb, 0x43, 0xf8, 0x25, 0xc5, 0xfb, 0x89, 0x59, 0x40, 0xee, 0x90, 0x13, 0x12, - 0x08, 0xe0, 0x9b, 0x4e, 0xc9, 0xb0, 0xd6, 0x61, 0xe1, 0x1d, 0xe6, 0x53, 0x81, 0xc9, 0x9c, 0xf8, - 0x58, 0xd0, 0xfc, 0x1b, 0xf5, 0x07, 0xc7, 0x94, 0xbb, 0x14, 0xe1, 0x2e, 0x68, 0xd5, 0x13, 0x2d, - 0xdd, 0x13, 0x2f, 0xc0, 0x92, 0x1b, 0x45, 0xbb, 0x2e, 0x1d, 0x92, 0x18, 0x3b, 0x9d, 0x17, 0x7a, - 0x2b, 0x5c, 0xee, 0x0f, 0xde, 0x53, 0x9f, 0x65, 0xf1, 0x80, 0x08, 0xb8, 0x9b, 0x8e, 0xc2, 0xe1, - 0x7a, 0x58, 0x44, 0x62, 0x05, 0x46, 0x44, 0xbe, 0xc2, 0x95, 0x5e, 0x81, 0xc2, 0x2b, 0xdc, 0x8f, - 0x59, 0x4a, 0xae, 0x53, 0x4f, 0x0c, 0xaa, 0x23, 0xfd, 0x58, 0xb2, 0xec, 0x1f, 0x19, 0xb0, 0xb4, - 0x9f, 0x1d, 0x04, 0xfe, 0x40, 0xa8, 0xe0, 0xb0, 0x96, 0xe0, 0x19, 0x1a, 0x78, 0x2a, 0x04, 0xe6, - 0x64, 0x08, 0x1a, 0x3a, 0x04, 0x6b, 0xd0, 0x1a, 0x12, 0xea, 0x91, 0x58, 0x42, 0x2a, 0x29, 0x69, - 0x6a, 0x33, 0x37, 0xd5, 0xfe, 0x99, 0x09, 0x0b, 0x1f, 0xb2, 0x09, 0x1b, 0xd0, 0x89, 0x8e, 0x18, - 0x25, 0x7b, 0x19, 0x0f, 0x2b, 0x69, 0x8b, 0xca, 0xb2, 0x2e, 0x42, 0xf3, 0xc0, 0x8f, 0xd3, 0x23, - 0xe1, 0xd7, 0xae, 0x83, 0x04, 0xe7, 0x92, 0xd0, 0xf5, 0xd1, 0x99, 0x6d, 0x07, 0x09, 0x39, 0xa0, - 0x85, 0x02, 0x7b, 0x7d, 0x8e, 0xb5, 0x6b, 0x73, 0xac, 0x1e, 0x1b, 0x30, 0x2e, 0x36, 0xec, 0x7f, - 0x19, 0x00, 0x37, 0x62, 0x9f, 0x50, 0x4f, 0x40, 0x53, 0x99, 0xdc, 0x46, 0x7d, 0x72, 0xaf, 0x41, - 0x2b, 0x26, 0xa1, 0x1b, 0x1f, 0xe7, 0xc1, 0x8f, 0x54, 0xc5, 0xa0, 0x46, 0xcd, 0xa0, 0xd7, 0x01, - 0x0e, 0x45, 0x3f, 0x5c, 0x8f, 0x80, 0xaa, 0xf3, 0xca, 0xc7, 0xaf, 0xd4, 0x96, 0xc1, 0x2b, 0xb9, - 0x97, 0x1c, 0xa5, 0x39, 0x9f, 0x59, 0xae, 0xe7, 0xc9, 0x00, 0x6e, 0xe2, 0xcc, 0x2a, 0x18, 0x63, - 0xe2, 0xb7, 0x75, 0x4a, 0xfc, 0xce, 0x17, 0x41, 0xf1, 0x0f, 0x03, 0xda, 0x5b, 0x81, 0x3b, 0x38, - 0x9e, 0x72, 0xe8, 0xfa, 0x10, 0xcd, 0xda, 0x10, 0x6f, 0x42, 0xf7, 0x80, 0xab, 0xcb, 0x87, 0x20, - 0x50, 0xe8, 0xbc, 0xf2, 0xc9, 0x31, 0xa3, 0xd4, 0x27, 0x85, 0xa3, 0xcb, 0xe9, 0xc3, 0x9d, 0x3b, - 0x7b, 0xb8, 0xcd, 0x53, 0x86, 0xdb, 0x2a, 0x86, 0xfb, 0x17, 0x13, 0x16, 0xc5, 0x42, 0xe7, 0x90, - 0x51, 0x46, 0x92, 0xd4, 0xfa, 0x2a, 0x2c, 0x64, 0xb9, 0xa9, 0xc6, 0xb4, 0xa6, 0x16, 0x22, 0xd6, - 0x6b, 0x72, 0x59, 0x15, 0xf2, 0xa6, 0x90, 0xbf, 0x34, 0x46, 0xbe, 0xc8, 0x69, 0x4e, 0xd9, 0x9c, - 0xa7, 0xa0, 0x23, 0x97, 0x7a, 0x01, 0x71, 0x48, 0x92, 0x05, 0xa9, 0x5c, 0x2d, 0x35, 0x1e, 0x46, - 0xda, 0x68, 0x37, 0x19, 0xca, 0x04, 0x25, 0x29, 0x8e, 0x0e, 0xb6, 0xe3, 0x9f, 0x70, 0xe8, 0x25, - 0x83, 0x4f, 0xd4, 0x98, 0x8c, 0x84, 0x87, 0x70, 0x5a, 0xe5, 0x64, 0xd9, 0xa7, 0x44, 0x0d, 0x03, - 0x41, 0xe3, 0x71, 0x17, 0x23, 0x2d, 0x14, 0x60, 0x66, 0x52, 0x38, 0xd5, 0xc4, 0x64, 0xff, 0xad, - 0x01, 0x5d, 0x9c, 0x3e, 0x39, 0xa8, 0x97, 0x79, 0x9c, 0xb3, 0x50, 0x8b, 0x22, 0x85, 0xc3, 0xad, - 0xe0, 0xd4, 0x9e, 0xbe, 0xd0, 0x68, 0x3c, 0x1e, 0x8a, 0x9c, 0xbe, 0xa1, 0x2d, 0x38, 0x2a, 0x2b, - 0xef, 0xe5, 0xa6, 0xba, 0xf0, 0x28, 0x1c, 0xbe, 0x94, 0xa5, 0x4c, 0x8b, 0x8e, 0x82, 0xe6, 0xb2, - 0x29, 0x2b, 0xfa, 0xc7, 0xf8, 0x50, 0x38, 0x1c, 0xdf, 0x94, 0xe5, 0x7d, 0x23, 0x48, 0x25, 0x03, - 0x35, 0xcb, 0x7e, 0x31, 0x95, 0x14, 0x74, 0xcd, 0xab, 0xed, 0x53, 0xbd, 0x0a, 0x9a, 0x57, 0xf5, - 0xc9, 0xd5, 0xa9, 0x4d, 0xae, 0x4d, 0xe8, 0xa2, 0x9e, 0x3c, 0xe8, 0x17, 0x31, 0xd5, 0x6b, 0x4c, - 0x3d, 0x36, 0xba, 0xd5, 0xd8, 0xd0, 0xbd, 0xbb, 0x34, 0xc1, 0xbb, 0xcb, 0x85, 0x77, 0x7f, 0x6b, - 0x02, 0xec, 0x90, 0xc8, 0x8d, 0xd3, 0x90, 0xd0, 0x94, 0x0f, 0xcf, 0x2b, 0xa8, 0xc2, 0xb9, 0x1a, - 0x4f, 0xcd, 0x13, 0xa6, 0x9e, 0x27, 0x2c, 0x98, 0x13, 0x80, 0xa3, 0x37, 0xc5, 0x6f, 0x0e, 0x66, - 0xe4, 0xc6, 0xa8, 0x0d, 0x83, 0xbc, 0xa0, 0x79, 0x1e, 0x60, 0xb1, 0x27, 0x33, 0x47, 0xd3, 0x41, - 0x82, 0x4f, 0xfe, 0xb2, 0x3f, 0x51, 0xd0, 0xb4, 0x70, 0x5d, 0xd7, 0xb9, 0x67, 0xd6, 0x60, 0x2f, - 0xc1, 0x4a, 0x92, 0x1d, 0x94, 0x83, 0xdb, 0xcb, 0x42, 0x19, 0xee, 0x35, 0x3e, 0x07, 0x15, 0x8b, - 0x33, 0xde, 0x08, 0x53, 0x4d, 0xc9, 0xa8, 0x56, 0x05, 0xf6, 0xbb, 0x26, 0xac, 0xdc, 0x8d, 0x87, - 0x2e, 0xf5, 0xbf, 0x2b, 0xca, 0x4d, 0xb1, 0x80, 0xcf, 0x92, 0x72, 0x37, 0xa0, 0x43, 0xe8, 0x30, - 0xf0, 0x93, 0xa3, 0xbd, 0x12, 0x37, 0x95, 0xa5, 0x82, 0x3d, 0x37, 0x29, 0x29, 0x37, 0xb5, 0xa4, - 0xbc, 0x06, 0xad, 0x90, 0x1d, 0xf8, 0x41, 0x1e, 0xf7, 0x92, 0x12, 0x31, 0x4f, 0x02, 0x22, 0xb2, - 0x73, 0x11, 0xf3, 0x39, 0xa3, 0x4c, 0xd4, 0x0b, 0x63, 0x13, 0x75, 0x5b, 0x4d, 0xd4, 0x3a, 0xf0, - 0x50, 0x03, 0x1e, 0xe1, 0xea, 0x14, 0x70, 0xfd, 0xc9, 0x80, 0x95, 0x12, 0x6e, 0xac, 0x41, 0x27, - 0xc2, 0x55, 0x8d, 0x40, 0x73, 0x4c, 0x04, 0x16, 0x71, 0xd3, 0x50, 0xe3, 0x86, 0x47, 0x1a, 0x4b, - 0x7c, 0xa5, 0xde, 0x2f, 0x68, 0xde, 0x5b, 0x40, 0x5c, 0x05, 0x2c, 0xa4, 0x94, 0xaa, 0xbb, 0xa5, - 0x55, 0xdd, 0xd5, 0x3c, 0xfa, 0x07, 0x03, 0x2e, 0x72, 0x2f, 0xd7, 0x86, 0x71, 0x17, 0x56, 0x58, - 0x25, 0x12, 0x64, 0xa2, 0xf9, 0xd4, 0x98, 0x44, 0x51, 0x0d, 0x1a, 0xa7, 0x26, 0xcc, 0x15, 0x7a, - 0x95, 0x4e, 0x64, 0xe6, 0x19, 0xa7, 0xb0, 0x6a, 0x8f, 0x53, 0x13, 0xb6, 0x3f, 0x30, 0x60, 0x05, - 0x53, 0x9b, 0x32, 0xcf, 0xcf, 0xdd, 0xec, 0xb7, 0xe0, 0x62, 0xb5, 0xe7, 0x3b, 0x7e, 0x92, 0xf6, - 0xcc, 0x8d, 0xc6, 0xb4, 0xa6, 0x8f, 0x55, 0x60, 0x7f, 0x0f, 0x7a, 0xfb, 0x59, 0x10, 0xec, 0x92, - 0x24, 0x71, 0x87, 0x64, 0xeb, 0x51, 0x9f, 0x8c, 0x38, 0xdf, 0x21, 0x49, 0xc4, 0x27, 0x07, 0x89, - 0xe3, 0x6d, 0xe6, 0x11, 0x61, 0x7c, 0xd3, 0xc9, 0x49, 0xee, 0x57, 0x12, 0xc7, 0x7c, 0x85, 0x94, - 0x25, 0x1c, 0x52, 0xd6, 0x15, 0x98, 0x0b, 0xb8, 0x59, 0x0d, 0x61, 0xd6, 0xfa, 0x18, 0xb3, 0x76, - 0x93, 0xe1, 0x8e, 0x9b, 0xba, 0x8e, 0x68, 0x67, 0x87, 0xf0, 0xdc, 0xf8, 0xde, 0x47, 0x13, 0x03, - 0x98, 0x17, 0x59, 0xa2, 0x4a, 0xf1, 0x19, 0x2d, 0xe2, 0x57, 0x65, 0x71, 0xb3, 0x13, 0xd4, 0x23, - 0xec, 0xe8, 0x3a, 0x39, 0x69, 0x5f, 0x04, 0xeb, 0x26, 0x49, 0x77, 0xdd, 0x87, 0xd7, 0xa8, 0xb7, - 0xeb, 0xd3, 0x3e, 0x19, 0x39, 0x64, 0x64, 0x5f, 0x87, 0x0b, 0x35, 0x6e, 0x12, 0x89, 0x89, 0xee, - 0x3e, 0xec, 0x93, 0x91, 0x30, 0xa0, 0xeb, 0x48, 0x4a, 0xf0, 0x45, 0x2b, 0x59, 0xbf, 0x49, 0xca, - 0x1e, 0xc1, 0x32, 0x77, 0x55, 0x9f, 0x50, 0x6f, 0x37, 0x19, 0x0a, 0x15, 0x1b, 0xd0, 0x41, 0x04, - 0x76, 0x93, 0x61, 0x59, 0x10, 0x2a, 0x2c, 0xde, 0x62, 0x10, 0xf8, 0xdc, 0x25, 0xa2, 0x85, 0x1c, - 0x8d, 0xc2, 0xe2, 0xd3, 0x2e, 0x21, 0x72, 0x7f, 0xc4, 0xe7, 0x63, 0xc3, 0x29, 0x68, 0xfb, 0x83, - 0x26, 0xcc, 0x4b, 0x40, 0xc5, 0x54, 0xe3, 0x35, 0x78, 0x81, 0x17, 0x52, 0x98, 0x2d, 0x07, 0x27, - 0xe5, 0x56, 0x13, 0x29, 0x75, 0x73, 0xda, 0xd0, 0x37, 0xa7, 0x15, 0x9b, 0xe6, 0xea, 0x36, 0x55, - 0xc6, 0xd5, 0xac, 0x8f, 0x8b, 0x27, 0x07, 0xb1, 0x5e, 0xee, 0x07, 0x6e, 0x7a, 0xc8, 0xe2, 0x50, - 0x96, 0xd4, 0x4d, 0xa7, 0xc6, 0xe7, 0x09, 0x09, 0x79, 0x45, 0x45, 0x81, 0x0b, 0x43, 0x85, 0xcb, - 0xf3, 0x37, 0x72, 0xf2, 0xca, 0x02, 0xf7, 0x32, 0x3a, 0x13, 0x6d, 0x4b, 0x12, 0x9f, 0x51, 0x91, - 0xdb, 0xb0, 0x80, 0x50, 0x59, 0x7c, 0xe4, 0x61, 0x32, 0xbc, 0x11, 0xb3, 0x50, 0xee, 0x68, 0x72, - 0x52, 0x8c, 0x9c, 0xd1, 0x34, 0xcf, 0x8b, 0x1d, 0x94, 0x55, 0x58, 0x5c, 0x56, 0x92, 0xa2, 0x7a, - 0x58, 0x74, 0x72, 0xd2, 0x5a, 0x81, 0x46, 0x42, 0x46, 0xb2, 0x24, 0xe0, 0x3f, 0x35, 0xcf, 0x2d, - 0xeb, 0x9e, 0xab, 0xac, 0xf1, 0x2b, 0xe2, 0xab, 0xba, 0xc6, 0x97, 0x0b, 0xe7, 0xaa, 0xb6, 0x70, - 0x5e, 0x83, 0x79, 0x16, 0xf1, 0x38, 0x4f, 0x7a, 0x96, 0x98, 0x63, 0x9f, 0x9e, 0x3c, 0xc7, 0xae, - 0xdc, 0xc5, 0x96, 0xd7, 0x69, 0x1a, 0x3f, 0x72, 0x72, 0x39, 0xeb, 0x0e, 0x2c, 0xb3, 0xc3, 0xc3, - 0xc0, 0xa7, 0x64, 0x3f, 0x4b, 0x8e, 0x44, 0xe9, 0x7d, 0x41, 0x2c, 0x4d, 0xf6, 0xb8, 0xa5, 0x49, - 0x6f, 0xe9, 0x54, 0x45, 0xd7, 0x5f, 0x83, 0x45, 0xb5, 0x1b, 0x0e, 0xc3, 0x31, 0x79, 0x24, 0x63, - 0x90, 0xff, 0xe4, 0xd9, 0xe4, 0xc4, 0x0d, 0x32, 0xcc, 0xce, 0x0b, 0x0e, 0x12, 0xaf, 0x99, 0x5f, - 0x32, 0xec, 0x9f, 0x1a, 0xb0, 0x5c, 0xe9, 0x80, 0xb7, 0x4e, 0xfd, 0x34, 0x20, 0x52, 0x03, 0x12, - 0xbc, 0xf2, 0xf1, 0x48, 0x32, 0x90, 0x21, 0x2c, 0x7e, 0xcb, 0x1c, 0xd2, 0x28, 0xf6, 0xb3, 0x36, - 0x2c, 0xfa, 0x77, 0xfb, 0x5c, 0x51, 0x9f, 0x65, 0xd4, 0x2b, 0xce, 0xa4, 0x14, 0x1e, 0x0f, 0x21, - 0xff, 0x6e, 0x7f, 0xcb, 0xf5, 0x86, 0x04, 0x4f, 0x8e, 0x9a, 0xc2, 0x26, 0x9d, 0x69, 0x7b, 0xb0, - 0x70, 0xcf, 0x8f, 0x92, 0x6d, 0x16, 0x86, 0xdc, 0x11, 0x1e, 0x49, 0x79, 0x8e, 0x36, 0x84, 0xbf, - 0x25, 0xc5, 0x43, 0xc5, 0x23, 0x87, 0x6e, 0x16, 0xa4, 0xbc, 0x69, 0x3e, 0x71, 0x15, 0x96, 0x38, - 0x33, 0x49, 0x18, 0xdd, 0x41, 0x69, 0xb4, 0x53, 0xe1, 0xd8, 0x7f, 0x36, 0x61, 0x45, 0xec, 0x6c, - 0xb6, 0x85, 0xdb, 0x3d, 0x21, 0xf4, 0x0a, 0x34, 0xc5, 0x34, 0x94, 0xd9, 0xe2, 0xf4, 0xdd, 0x10, - 0x36, 0xb5, 0xae, 0x42, 0x8b, 0x45, 0x22, 0xc5, 0x60, 0x22, 0x7b, 0x61, 0x92, 0x90, 0x7e, 0x3c, - 0xe5, 0x48, 0x29, 0xeb, 0x06, 0x40, 0x58, 0x66, 0x14, 0x5c, 0xba, 0xa7, 0xd5, 0xa1, 0x48, 0x72, - 0x70, 0x8b, 0x65, 0xb8, 0x38, 0xa3, 0x6a, 0x38, 0x3a, 0xd3, 0xda, 0x83, 0x25, 0x61, 0xf6, 0xdd, - 0x7c, 0x5b, 0x2c, 0x7c, 0x30, 0x7d, 0x8f, 0x15, 0x69, 0xfb, 0x97, 0x86, 0x84, 0x91, 0x7f, 0xed, - 0x13, 0xc4, 0xbe, 0x84, 0xc4, 0x98, 0x09, 0x92, 0x75, 0x58, 0x08, 0x33, 0x65, 0x97, 0xde, 0x70, - 0x0a, 0xba, 0x74, 0x51, 0x63, 0x6a, 0x17, 0xd9, 0xbf, 0x32, 0xa0, 0xf7, 0x06, 0xf3, 0xa9, 0xf8, - 0x70, 0x2d, 0x8a, 0x02, 0x79, 0x90, 0x3a, 0xb3, 0xcf, 0xbf, 0x06, 0x6d, 0x17, 0xd5, 0xd0, 0x54, - 0xba, 0x7d, 0x8a, 0x9d, 0x77, 0x29, 0xa3, 0x6c, 0xa2, 0x1a, 0xea, 0x26, 0xca, 0x7e, 0xcf, 0x80, - 0x25, 0x04, 0xe5, 0xcd, 0xcc, 0x4f, 0x67, 0xb6, 0x6f, 0x0b, 0x16, 0x46, 0x99, 0x9f, 0xce, 0x10, - 0x95, 0x85, 0x5c, 0x3d, 0x9e, 0x1a, 0x63, 0xe2, 0xc9, 0x7e, 0xdf, 0x80, 0x4b, 0x55, 0x58, 0xaf, - 0x0d, 0x06, 0x24, 0x7a, 0x92, 0x53, 0x4a, 0xdb, 0x44, 0xce, 0x55, 0x36, 0x91, 0x63, 0x4d, 0x76, - 0xc8, 0x3b, 0x64, 0xf0, 0xf4, 0x9a, 0xfc, 0x43, 0x13, 0x3e, 0x76, 0xb3, 0x98, 0x78, 0xf7, 0x62, - 0x97, 0x26, 0x87, 0x24, 0x8e, 0x9f, 0xa0, 0xbd, 0x77, 0xa0, 0x4b, 0xc9, 0x83, 0xd2, 0x26, 0x39, - 0x1d, 0xa7, 0x55, 0xa3, 0x0b, 0x4f, 0xb7, 0x76, 0xd9, 0xff, 0x36, 0x60, 0x05, 0xf5, 0x7c, 0xdd, - 0x1f, 0x1c, 0x3f, 0xc1, 0xc1, 0xef, 0xc1, 0xd2, 0xb1, 0xb0, 0x80, 0x53, 0x33, 0x2c, 0xdb, 0x15, - 0xe9, 0x29, 0x87, 0xff, 0x1f, 0x03, 0x56, 0x51, 0xd1, 0x6d, 0x7a, 0xe2, 0x3f, 0xc9, 0x60, 0xdd, - 0x87, 0x65, 0x1f, 0x4d, 0x98, 0x11, 0x80, 0xaa, 0xf8, 0x94, 0x08, 0xfc, 0xde, 0x80, 0x65, 0xd4, - 0x74, 0x9d, 0xa6, 0x24, 0x9e, 0x79, 0xfc, 0xb7, 0xa0, 0x43, 0x68, 0x1a, 0xbb, 0x74, 0x96, 0x15, - 0x52, 0x15, 0x9d, 0x72, 0x91, 0x7c, 0xcf, 0x00, 0x4b, 0xa8, 0xda, 0xf1, 0x93, 0xd0, 0x4f, 0x92, - 0x27, 0xe8, 0xba, 0xe9, 0x0c, 0xfe, 0xb9, 0x09, 0x17, 0x15, 0x2d, 0xbb, 0x59, 0xfa, 0xb4, 0x9b, - 0x6c, 0xed, 0x40, 0x9b, 0xd7, 0x08, 0xea, 0xed, 0xc4, 0xb4, 0x1d, 0x95, 0x82, 0xbc, 0x8a, 0x15, - 0x44, 0x9f, 0x0c, 0x18, 0xf5, 0x12, 0x51, 0x1c, 0x75, 0x1d, 0x8d, 0xc7, 0x97, 0xa1, 0x75, 0x45, - 0xcd, 0xb6, 0x4b, 0x07, 0x24, 0x78, 0x66, 0x20, 0xb2, 0x7f, 0x63, 0xc0, 0x12, 0x36, 0x79, 0xfa, - 0x87, 0xcc, 0x73, 0x3d, 0x06, 0xf2, 0x47, 0xc6, 0x4b, 0x3c, 0xbc, 0xd6, 0x14, 0x2d, 0x6a, 0x5d, - 0xfd, 0xf4, 0x86, 0xd6, 0x2d, 0xe8, 0x0c, 0x8e, 0x5c, 0x3a, 0x9c, 0x29, 0xb8, 0x54, 0x51, 0x3b, - 0x85, 0xe7, 0xd4, 0x03, 0xb9, 0x6d, 0xfc, 0x24, 0x86, 0xff, 0x6a, 0x65, 0x28, 0xa7, 0xde, 0x3e, - 0x3e, 0x1e, 0xe8, 0xc7, 0xb0, 0x8a, 0xb7, 0x40, 0x4a, 0x4d, 0x68, 0xf5, 0x60, 0xde, 0xf5, 0xf0, - 0x00, 0xc1, 0x10, 0x42, 0x39, 0xa9, 0xdf, 0xef, 0xc9, 0x27, 0x1c, 0xe5, 0xfd, 0xde, 0x65, 0x00, - 0xd7, 0xf3, 0xde, 0x62, 0xb1, 0xe7, 0xd3, 0xbc, 0xc0, 0x57, 0x38, 0xf6, 0x1b, 0xb0, 0x78, 0x23, - 0x66, 0xe1, 0x3d, 0xe5, 0x3e, 0xe7, 0xd4, 0x1b, 0x27, 0xf5, 0x2e, 0xc8, 0xd4, 0xef, 0x82, 0xec, - 0xef, 0xc0, 0xff, 0xd7, 0x0c, 0x17, 0x60, 0x6d, 0xe3, 0x35, 0x55, 0xde, 0x89, 0x0c, 0x99, 0x4f, - 0x8c, 0x81, 0x4c, 0xb5, 0xc5, 0xd1, 0x84, 0xec, 0x1f, 0x18, 0xf0, 0x7c, 0x4d, 0xfd, 0xb5, 0x28, - 0x8a, 0xd9, 0x89, 0xf4, 0xc9, 0x79, 0x74, 0xa3, 0x17, 0xbf, 0x66, 0xb5, 0xf8, 0x1d, 0x6b, 0x84, - 0x56, 0xb0, 0x7f, 0x08, 0x46, 0xfc, 0xda, 0x80, 0x65, 0x69, 0x84, 0xe7, 0xc9, 0x6e, 0xbf, 0x08, - 0x2d, 0xbc, 0xe2, 0x96, 0x1d, 0x3e, 0x3f, 0xb6, 0xc3, 0xfc, 0x6a, 0xde, 0x91, 0x8d, 0xeb, 0x11, - 0x69, 0x8e, 0x9b, 0x51, 0x5f, 0x2e, 0x82, 0x7d, 0xea, 0x4b, 0x68, 0x29, 0x60, 0x7f, 0x33, 0x0f, - 0xe6, 0x1d, 0x12, 0x90, 0xf3, 0xc4, 0xc8, 0xbe, 0x0f, 0x4b, 0xe2, 0xbe, 0xbd, 0xc4, 0xe0, 0x5c, - 0xd4, 0xbe, 0x05, 0x2b, 0x42, 0xed, 0xb9, 0xdb, 0x5b, 0xcc, 0x0e, 0x8e, 0x8f, 0xba, 0x94, 0x9c, - 0x8b, 0xf6, 0xcf, 0xc3, 0x85, 0x1c, 0xfb, 0xfb, 0x91, 0x57, 0x1c, 0x22, 0x4d, 0x38, 0x3a, 0xb7, - 0xbf, 0x00, 0x6b, 0xdb, 0x8c, 0x9e, 0x90, 0x38, 0xc1, 0x8b, 0x05, 0x21, 0x92, 0x4b, 0x68, 0x93, - 0x5f, 0x52, 0xf6, 0x3b, 0xb0, 0xae, 0x4a, 0xf4, 0x49, 0xba, 0x1f, 0xfb, 0x27, 0x8a, 0x94, 0x3c, - 0x5a, 0x36, 0xb4, 0xa3, 0xe5, 0xf2, 0x28, 0xda, 0xd4, 0x8e, 0xa2, 0x2f, 0x41, 0xdb, 0x4f, 0xa4, - 0x02, 0x11, 0x54, 0x0b, 0x4e, 0xc9, 0xb0, 0xfb, 0xb0, 0x2a, 0x6f, 0xc0, 0xf7, 0xdd, 0xa1, 0x4f, - 0x71, 0x05, 0xbc, 0x0c, 0x10, 0xb9, 0xc3, 0xfc, 0x05, 0x0c, 0xde, 0x42, 0x28, 0x1c, 0xfe, 0x3d, - 0x39, 0x62, 0x0f, 0xe4, 0x77, 0x13, 0xbf, 0x97, 0x1c, 0xfb, 0x1b, 0x60, 0x39, 0x24, 0x89, 0x18, - 0x4d, 0x88, 0xa2, 0x75, 0x03, 0x3a, 0xdb, 0x59, 0x1c, 0x13, 0xca, 0xbb, 0xca, 0x9f, 0x83, 0xa8, - 0x2c, 0xae, 0xb7, 0x5f, 0xea, 0xc5, 0x93, 0x6b, 0x85, 0x63, 0xff, 0xa2, 0x01, 0xed, 0xbe, 0x3f, - 0xa4, 0x6e, 0xe0, 0x90, 0x91, 0xf5, 0x15, 0x68, 0xe1, 0x7e, 0x42, 0xba, 0x71, 0xdc, 0x49, 0x2a, - 0xb6, 0xc6, 0x8d, 0x93, 0x43, 0x46, 0xb7, 0xfe, 0xcf, 0x91, 0x32, 0xd6, 0x9b, 0xd0, 0xc5, 0x5f, - 0xb7, 0xf1, 0x7c, 0x48, 0x26, 0x97, 0xcf, 0x9c, 0xa1, 0x44, 0xb6, 0x46, 0x5d, 0xba, 0x06, 0x6e, - 0xd0, 0x40, 0xd4, 0x1b, 0x72, 0xee, 0x4e, 0x36, 0x08, 0xcb, 0x12, 0x69, 0x10, 0xca, 0x70, 0x69, - 0x57, 0x9c, 0xa0, 0xc8, 0x34, 0x3a, 0x59, 0x1a, 0x0f, 0x5a, 0xa4, 0x34, 0xca, 0x70, 0xe9, 0xa3, - 0x8c, 0x0e, 0xef, 0x47, 0xf2, 0x60, 0x6f, 0xb2, 0xf4, 0x2d, 0xd1, 0x4c, 0x4a, 0xa3, 0x0c, 0x97, - 0x8e, 0xc5, 0xca, 0x2a, 0x40, 0x3f, 0x4d, 0x1a, 0x17, 0x60, 0x29, 0x8d, 0x32, 0x5b, 0x6d, 0x98, - 0x8f, 0xdc, 0x47, 0x01, 0x73, 0x3d, 0xfb, 0xdd, 0x06, 0x40, 0xde, 0x30, 0x11, 0x55, 0x88, 0xe6, - 0xa2, 0xcd, 0x33, 0x5d, 0x14, 0x05, 0x8f, 0x14, 0x27, 0xf5, 0xc7, 0x3b, 0xe9, 0xb3, 0xd3, 0x3a, - 0x09, 0xb5, 0x55, 0xdc, 0x74, 0xb5, 0xe2, 0xa6, 0xcd, 0x33, 0xdd, 0x24, 0x8d, 0x92, 0x8e, 0xba, - 0x5a, 0x71, 0xd4, 0xe6, 0x99, 0x8e, 0x92, 0xf2, 0xd2, 0x55, 0x57, 0x2b, 0xae, 0xda, 0x3c, 0xd3, - 0x55, 0x52, 0x5e, 0x3a, 0xeb, 0x6a, 0xc5, 0x59, 0x9b, 0x67, 0x3a, 0x4b, 0xca, 0xd7, 0xdd, 0xf5, - 0xbe, 0x09, 0x4b, 0x02, 0x32, 0xbc, 0xc5, 0xa3, 0x87, 0x4c, 0x1c, 0xd6, 0x0b, 0xb8, 0xf4, 0x07, - 0x55, 0x3a, 0xd3, 0xfa, 0x1c, 0xac, 0x22, 0x43, 0x3e, 0xc0, 0x29, 0xae, 0x45, 0xdb, 0x4e, 0xfd, - 0x83, 0xb8, 0x77, 0xc9, 0x92, 0x94, 0x85, 0x3b, 0x6e, 0xea, 0xe6, 0x95, 0x51, 0xc9, 0x51, 0x6f, - 0xc5, 0xe6, 0x6a, 0x4f, 0x36, 0x63, 0xc6, 0xc2, 0xe2, 0xba, 0x4b, 0x52, 0x5c, 0x22, 0xf5, 0x43, - 0xc2, 0xb2, 0x54, 0x2e, 0x13, 0x39, 0x89, 0x8f, 0x1e, 0x3c, 0xdf, 0x15, 0x77, 0x49, 0xf2, 0x45, - 0x40, 0xc1, 0x10, 0x2b, 0x5b, 0x79, 0x37, 0x26, 0x9f, 0x54, 0x96, 0x9c, 0xb3, 0xef, 0xb1, 0xec, - 0xbf, 0x1b, 0x70, 0x61, 0xdf, 0x8d, 0x53, 0x7f, 0xe0, 0x47, 0x2e, 0x4d, 0x77, 0x49, 0xea, 0x8a, - 0x31, 0x68, 0xaf, 0xaa, 0x8c, 0xc7, 0x7b, 0x55, 0xb5, 0x0f, 0xcb, 0x43, 0xbd, 0xf4, 0x7f, 0xcc, - 0xaa, 0xbd, 0x2a, 0xae, 0x3d, 0x11, 0x6b, 0x3c, 0xf6, 0x13, 0x31, 0xfb, 0xc7, 0x26, 0x2c, 0x57, - 0x96, 0x4e, 0x5e, 0x8e, 0x62, 0xa1, 0x51, 0xc4, 0x44, 0x41, 0x5b, 0xd7, 0x00, 0xfc, 0x22, 0x8c, - 0x4e, 0x39, 0x19, 0xd7, 0x63, 0xcd, 0x51, 0x84, 0xc6, 0x5d, 0x90, 0x35, 0x66, 0xbe, 0x20, 0xe3, - 0x1b, 0x93, 0xa8, 0x74, 0xd2, 0x29, 0x1b, 0x93, 0x31, 0xae, 0x74, 0x54, 0x51, 0xfb, 0xdb, 0xb0, - 0x5a, 0x5b, 0xa1, 0xc4, 0x7d, 0x19, 0x3b, 0x26, 0xb4, 0xb8, 0x2f, 0xe3, 0x84, 0x12, 0xac, 0x66, - 0x35, 0x58, 0x03, 0xff, 0x44, 0x7d, 0x83, 0x2a, 0x49, 0xfb, 0x27, 0x26, 0xac, 0x8d, 0xcf, 0x2e, - 0xcf, 0x2a, 0xdc, 0x07, 0xd0, 0x9b, 0xb4, 0x92, 0x9f, 0x1b, 0xea, 0x65, 0x74, 0x17, 0x79, 0xf8, - 0x59, 0x85, 0xfb, 0x42, 0x1e, 0xdd, 0x4a, 0xaa, 0xb3, 0x7f, 0x57, 0xe0, 0x53, 0x54, 0x1a, 0xcf, - 0x28, 0x3e, 0xd6, 0x4b, 0xb0, 0x82, 0xc3, 0x54, 0x5e, 0x54, 0x60, 0xe1, 0x5a, 0xe3, 0x97, 0x2b, - 0x85, 0x92, 0xf6, 0xcf, 0x2d, 0x66, 0xff, 0x68, 0xe4, 0x3e, 0x29, 0xea, 0xb7, 0x8f, 0x94, 0x4f, - 0xca, 0x48, 0x53, 0x8a, 0x1a, 0x25, 0xd2, 0x8a, 0xba, 0xf2, 0x7f, 0x91, 0x76, 0x76, 0xa4, 0x15, - 0x58, 0x2a, 0x05, 0x9e, 0xfd, 0x7d, 0xe8, 0xee, 0x90, 0x60, 0x37, 0x19, 0xe6, 0x6f, 0xb9, 0x4e, - 0x03, 0x72, 0xd2, 0x5f, 0x61, 0x26, 0xbe, 0xe2, 0xaa, 0xbe, 0x00, 0x9b, 0xab, 0xbd, 0x00, 0xb3, - 0xb7, 0x60, 0x49, 0x35, 0x60, 0x96, 0xa7, 0x6c, 0x5b, 0x97, 0xbe, 0xb5, 0x7e, 0xe5, 0x65, 0xfc, - 0xd3, 0xd5, 0xeb, 0x35, 0x10, 0x0f, 0x5a, 0xe2, 0x4f, 0x58, 0xaf, 0xfe, 0x37, 0x00, 0x00, 0xff, - 0xff, 0xda, 0x69, 0x8c, 0xa6, 0x97, 0x35, 0x00, 0x00, +var fileDescriptor_ws_e4200fdb78b83da6 = []byte{ + // 3049 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x24, 0x49, + 0xd1, 0xff, 0xaa, 0xda, 0xdd, 0x76, 0x47, 0xbb, 0xfd, 0xa8, 0x99, 0xcf, 0xdb, 0x98, 0xd9, 0xc1, + 0x14, 0xd6, 0xb2, 0x2c, 0x30, 0x8b, 0x76, 0x85, 0x04, 0xbb, 0x30, 0x68, 0x6c, 0xcf, 0x6b, 0x19, + 0x7b, 0xbc, 0xd5, 0x33, 0x2c, 0x02, 0xa4, 0x55, 0xb9, 0x2b, 0xdd, 0xae, 0x75, 0x55, 0x66, 0x75, + 0x3d, 0x3c, 0x33, 0x08, 0x09, 0x09, 0x24, 0xc4, 0x8d, 0x13, 0x1c, 0xb8, 0x20, 0x71, 0x41, 0xa0, + 0xd5, 0x6a, 0x85, 0x40, 0xe2, 0x80, 0x10, 0x07, 0xfe, 0x01, 0x8e, 0x88, 0x0b, 0xe2, 0xcc, 0x95, + 0x03, 0x12, 0x12, 0x28, 0x33, 0xb2, 0xaa, 0x32, 0xab, 0xba, 0xed, 0x9e, 0x96, 0xb5, 0x33, 0xab, + 0xe1, 0xd6, 0x11, 0x95, 0x11, 0x19, 0xf9, 0x8b, 0xc8, 0x8c, 0xc8, 0x47, 0xc3, 0x72, 0xe2, 0x1d, + 0xbf, 0xfd, 0x20, 0x79, 0xf9, 0x41, 0x72, 0x25, 0x8a, 0x59, 0xca, 0xac, 0xd5, 0x84, 0xc4, 0x27, + 0x24, 0x7e, 0xdb, 0x8d, 0xfc, 0xb7, 0x23, 0x37, 0x76, 0xc3, 0xc4, 0xfe, 0xa7, 0x09, 0xed, 0x9b, + 0x31, 0xcb, 0xa2, 0xdb, 0xf4, 0x90, 0x59, 0x3d, 0x98, 0x1f, 0x0a, 0x62, 0xa7, 0x67, 0x6c, 0x18, + 0x2f, 0xb6, 0x9d, 0x9c, 0xb4, 0x2e, 0x41, 0x5b, 0xfc, 0xdc, 0x73, 0x43, 0xd2, 0x33, 0xc5, 0xb7, + 0x92, 0x61, 0xd9, 0xb0, 0x48, 0x59, 0xea, 0x1f, 0xfa, 0x03, 0x37, 0xf5, 0x19, 0xed, 0x35, 0x44, + 0x03, 0x8d, 0xc7, 0xdb, 0xf8, 0x34, 0x8d, 0x99, 0x97, 0x0d, 0x44, 0x9b, 0x39, 0x6c, 0xa3, 0xf2, + 0x78, 0xff, 0x87, 0xee, 0x80, 0xdc, 0x77, 0xee, 0xf4, 0x9a, 0xd8, 0xbf, 0x24, 0xad, 0x0d, 0xe8, + 0xb0, 0x07, 0x94, 0xc4, 0xf7, 0x13, 0x12, 0xdf, 0xde, 0xe9, 0xb5, 0xc4, 0x57, 0x95, 0x65, 0x5d, + 0x06, 0x18, 0xc4, 0xc4, 0x4d, 0xc9, 0x3d, 0x3f, 0x24, 0xbd, 0xf9, 0x0d, 0xe3, 0xc5, 0xae, 0xa3, + 0x70, 0xb8, 0x86, 0x90, 0x84, 0x07, 0x24, 0xde, 0x66, 0x19, 0x4d, 0x7b, 0x0b, 0xa2, 0x81, 0xca, + 0xb2, 0x96, 0xc0, 0x24, 0x0f, 0x7b, 0x6d, 0xa1, 0xda, 0x24, 0x0f, 0xad, 0x35, 0x68, 0x25, 0xa9, + 0x9b, 0x66, 0x49, 0x0f, 0x36, 0x8c, 0x17, 0x9b, 0x8e, 0xa4, 0xac, 0x4d, 0xe8, 0x0a, 0xbd, 0x2c, + 0xb7, 0xa6, 0x23, 0x44, 0x74, 0x66, 0x81, 0xd8, 0xbd, 0x47, 0x11, 0xe9, 0x2d, 0x0a, 0x05, 0x25, + 0xc3, 0xfe, 0x8b, 0x09, 0x17, 0x04, 0xee, 0xbb, 0xc2, 0x80, 0x1b, 0x59, 0x10, 0x9c, 0xe1, 0x81, + 0x35, 0x68, 0x65, 0xd8, 0x1d, 0xc2, 0x2f, 0x29, 0xde, 0x4f, 0xcc, 0x02, 0x72, 0x87, 0x9c, 0x90, + 0x40, 0x00, 0xdf, 0x74, 0x4a, 0x86, 0xb5, 0x0e, 0x0b, 0xef, 0x30, 0x9f, 0x0a, 0x4c, 0xe6, 0xc4, + 0xc7, 0x82, 0xe6, 0xdf, 0xa8, 0x3f, 0x38, 0xa6, 0xdc, 0xa5, 0x08, 0x77, 0x41, 0xab, 0x9e, 0x68, + 0xe9, 0x9e, 0x78, 0x01, 0x96, 0xdc, 0x28, 0xda, 0x75, 0xe9, 0x90, 0xc4, 0xd8, 0xe9, 0xbc, 0xd0, + 0x5b, 0xe1, 0x72, 0x7f, 0xf0, 0x9e, 0xfa, 0x2c, 0x8b, 0x07, 0x44, 0xc0, 0xdd, 0x74, 0x14, 0x0e, + 0xd7, 0xc3, 0x22, 0x12, 0x2b, 0x30, 0x22, 0xf2, 0x15, 0xae, 0xf4, 0x0a, 0x14, 0x5e, 0xe1, 0x7e, + 0xcc, 0x52, 0x72, 0x9d, 0x7a, 0x62, 0x50, 0x1d, 0xe9, 0xc7, 0x92, 0x65, 0xff, 0xc0, 0x80, 0xa5, + 0xfd, 0xec, 0x20, 0xf0, 0x07, 0x42, 0x05, 0x87, 0xb5, 0x04, 0xcf, 0xd0, 0xc0, 0x53, 0x21, 0x30, + 0x27, 0x43, 0xd0, 0xd0, 0x21, 0x58, 0x83, 0xd6, 0x90, 0x50, 0x8f, 0xc4, 0x12, 0x52, 0x49, 0x49, + 0x53, 0x9b, 0xb9, 0xa9, 0xf6, 0x4f, 0x4c, 0x58, 0xf8, 0x80, 0x4d, 0xd8, 0x80, 0x4e, 0x74, 0xc4, + 0x28, 0xd9, 0xcb, 0x78, 0x58, 0x49, 0x5b, 0x54, 0x96, 0x75, 0x11, 0x9a, 0x07, 0x7e, 0x9c, 0x1e, + 0x09, 0xbf, 0x76, 0x1d, 0x24, 0x38, 0x97, 0x84, 0xae, 0x8f, 0xce, 0x6c, 0x3b, 0x48, 0xc8, 0x01, + 0x2d, 0x14, 0xd8, 0xeb, 0x73, 0xac, 0x5d, 0x9b, 0x63, 0xf5, 0xd8, 0x80, 0x71, 0xb1, 0x61, 0xff, + 0xcb, 0x00, 0xb8, 0x11, 0xfb, 0x84, 0x7a, 0x02, 0x9a, 0xca, 0xe4, 0x36, 0xea, 0x93, 0x7b, 0x0d, + 0x5a, 0x31, 0x09, 0xdd, 0xf8, 0x38, 0x0f, 0x7e, 0xa4, 0x2a, 0x06, 0x35, 0x6a, 0x06, 0xbd, 0x0e, + 0x70, 0x28, 0xfa, 0xe1, 0x7a, 0x04, 0x54, 0x9d, 0x57, 0x3e, 0x7a, 0xa5, 0xb6, 0x0c, 0x5e, 0xc9, + 0xbd, 0xe4, 0x28, 0xcd, 0xf9, 0xcc, 0x72, 0x3d, 0x4f, 0x06, 0x70, 0x13, 0x67, 0x56, 0xc1, 0x18, + 0x13, 0xbf, 0xad, 0x53, 0xe2, 0x77, 0xbe, 0x08, 0x8a, 0x7f, 0x18, 0xd0, 0xde, 0x0a, 0xdc, 0xc1, + 0xf1, 0x94, 0x43, 0xd7, 0x87, 0x68, 0xd6, 0x86, 0x78, 0x13, 0xba, 0x07, 0x5c, 0x5d, 0x3e, 0x04, + 0x81, 0x42, 0xe7, 0x95, 0x8f, 0x8f, 0x19, 0xa5, 0x3e, 0x29, 0x1c, 0x5d, 0x4e, 0x1f, 0xee, 0xdc, + 0xd9, 0xc3, 0x6d, 0x9e, 0x32, 0xdc, 0x56, 0x31, 0xdc, 0x3f, 0x9b, 0xb0, 0x28, 0x16, 0x3a, 0x87, + 0x8c, 0x32, 0x92, 0xa4, 0xd6, 0x97, 0x61, 0x21, 0xcb, 0x4d, 0x35, 0xa6, 0x35, 0xb5, 0x10, 0xb1, + 0x5e, 0x93, 0xcb, 0xaa, 0x90, 0x37, 0x85, 0xfc, 0xa5, 0x31, 0xf2, 0x45, 0x4e, 0x73, 0xca, 0xe6, + 0x3c, 0x05, 0x1d, 0xb9, 0xd4, 0x0b, 0x88, 0x43, 0x92, 0x2c, 0x48, 0xe5, 0x6a, 0xa9, 0xf1, 0x30, + 0xd2, 0x46, 0xbb, 0xc9, 0x50, 0x26, 0x28, 0x49, 0x71, 0x74, 0xb0, 0x1d, 0xff, 0x84, 0x43, 0x2f, + 0x19, 0x7c, 0xa2, 0xc6, 0x64, 0x24, 0x3c, 0x84, 0xd3, 0x2a, 0x27, 0xcb, 0x3e, 0x25, 0x6a, 0x18, + 0x08, 0x1a, 0x8f, 0xbb, 0x18, 0x69, 0xa1, 0x00, 0x33, 0x93, 0xc2, 0xa9, 0x26, 0x26, 0xfb, 0xaf, + 0x0d, 0xe8, 0xe2, 0xf4, 0xc9, 0x41, 0xbd, 0xcc, 0xe3, 0x9c, 0x85, 0x5a, 0x14, 0x29, 0x1c, 0x6e, + 0x05, 0xa7, 0xf6, 0xf4, 0x85, 0x46, 0xe3, 0xf1, 0x50, 0xe4, 0xf4, 0x0d, 0x6d, 0xc1, 0x51, 0x59, + 0x79, 0x2f, 0x37, 0xd5, 0x85, 0x47, 0xe1, 0xf0, 0xa5, 0x2c, 0x65, 0x5a, 0x74, 0x14, 0x34, 0x97, + 0x4d, 0x59, 0xd1, 0x3f, 0xc6, 0x87, 0xc2, 0xe1, 0xf8, 0xa6, 0x2c, 0xef, 0x1b, 0x41, 0x2a, 0x19, + 0xa8, 0x59, 0xf6, 0x8b, 0xa9, 0xa4, 0xa0, 0x6b, 0x5e, 0x6d, 0x9f, 0xea, 0x55, 0xd0, 0xbc, 0xaa, + 0x4f, 0xae, 0x4e, 0x6d, 0x72, 0x6d, 0x42, 0x17, 0xf5, 0xe4, 0x41, 0xbf, 0x88, 0xa9, 0x5e, 0x63, + 0xea, 0xb1, 0xd1, 0xad, 0xc6, 0x86, 0xee, 0xdd, 0xa5, 0x09, 0xde, 0x5d, 0x2e, 0xbc, 0xfb, 0x6b, + 0x13, 0x60, 0x87, 0x44, 0x6e, 0x9c, 0x86, 0x84, 0xa6, 0x7c, 0x78, 0x5e, 0x41, 0x15, 0xce, 0xd5, + 0x78, 0x6a, 0x9e, 0x30, 0xf5, 0x3c, 0x61, 0xc1, 0x9c, 0x00, 0x1c, 0xbd, 0x29, 0x7e, 0x73, 0x30, + 0x23, 0x37, 0x46, 0x6d, 0x18, 0xe4, 0x05, 0xcd, 0xf3, 0x00, 0x8b, 0x3d, 0x99, 0x39, 0x9a, 0x0e, + 0x12, 0x7c, 0xf2, 0x97, 0xfd, 0x89, 0x82, 0xa6, 0x85, 0xeb, 0xba, 0xce, 0x3d, 0xb3, 0x06, 0x7b, + 0x09, 0x56, 0x92, 0xec, 0xa0, 0x1c, 0xdc, 0x5e, 0x16, 0xca, 0x70, 0xaf, 0xf1, 0x39, 0xa8, 0x58, + 0x9c, 0xf1, 0x46, 0x98, 0x6a, 0x4a, 0x46, 0xb5, 0x2a, 0xb0, 0xdf, 0x35, 0x61, 0xe5, 0x6e, 0x3c, + 0x74, 0xa9, 0xff, 0x6d, 0x51, 0x6e, 0x8a, 0x05, 0x7c, 0x96, 0x94, 0xbb, 0x01, 0x1d, 0x42, 0x87, + 0x81, 0x9f, 0x1c, 0xed, 0x95, 0xb8, 0xa9, 0x2c, 0x15, 0xec, 0xb9, 0x49, 0x49, 0xb9, 0xa9, 0x25, + 0xe5, 0x35, 0x68, 0x85, 0xec, 0xc0, 0x0f, 0xf2, 0xb8, 0x97, 0x94, 0x88, 0x79, 0x12, 0x10, 0x91, + 0x9d, 0x8b, 0x98, 0xcf, 0x19, 0x65, 0xa2, 0x5e, 0x18, 0x9b, 0xa8, 0xdb, 0x6a, 0xa2, 0xd6, 0x81, + 0x87, 0x1a, 0xf0, 0x08, 0x57, 0xa7, 0x80, 0xeb, 0x8f, 0x06, 0xac, 0x94, 0x70, 0x63, 0x0d, 0x3a, + 0x11, 0xae, 0x6a, 0x04, 0x9a, 0x63, 0x22, 0xb0, 0x88, 0x9b, 0x86, 0x1a, 0x37, 0x3c, 0xd2, 0x58, + 0xe2, 0x2b, 0xf5, 0x7e, 0x41, 0xf3, 0xde, 0x02, 0xe2, 0x2a, 0x60, 0x21, 0xa5, 0x54, 0xdd, 0x2d, + 0xad, 0xea, 0xae, 0xe6, 0xd1, 0xdf, 0x19, 0x70, 0x91, 0x7b, 0xb9, 0x36, 0x8c, 0xbb, 0xb0, 0xc2, + 0x2a, 0x91, 0x20, 0x13, 0xcd, 0x27, 0xc6, 0x24, 0x8a, 0x6a, 0xd0, 0x38, 0x35, 0x61, 0xae, 0xd0, + 0xab, 0x74, 0x22, 0x33, 0xcf, 0x38, 0x85, 0x55, 0x7b, 0x9c, 0x9a, 0xb0, 0xfd, 0x7b, 0x03, 0x56, + 0x30, 0xb5, 0x29, 0xf3, 0xfc, 0xdc, 0xcd, 0x7e, 0x0b, 0x2e, 0x56, 0x7b, 0xbe, 0xe3, 0x27, 0x69, + 0xcf, 0xdc, 0x68, 0x4c, 0x6b, 0xfa, 0x58, 0x05, 0xf6, 0x77, 0xa0, 0xb7, 0x9f, 0x05, 0xc1, 0x2e, + 0x49, 0x12, 0x77, 0x48, 0xb6, 0x1e, 0xf5, 0xc9, 0x88, 0xf3, 0x1d, 0x92, 0x44, 0x7c, 0x72, 0x90, + 0x38, 0xde, 0x66, 0x1e, 0x11, 0xc6, 0x37, 0x9d, 0x9c, 0xe4, 0x7e, 0x25, 0x71, 0xcc, 0x57, 0x48, + 0x59, 0xc2, 0x21, 0x65, 0x5d, 0x81, 0xb9, 0x80, 0x9b, 0xd5, 0x10, 0x66, 0xad, 0x8f, 0x31, 0x6b, + 0x37, 0x19, 0xee, 0xb8, 0xa9, 0xeb, 0x88, 0x76, 0x76, 0x08, 0xcf, 0x8d, 0xef, 0x7d, 0x34, 0x31, + 0x80, 0x79, 0x91, 0x25, 0xaa, 0x14, 0x9f, 0xd1, 0x22, 0x7e, 0x55, 0x16, 0x37, 0x3b, 0x41, 0x3d, + 0xc2, 0x8e, 0xae, 0x93, 0x93, 0xf6, 0x45, 0xb0, 0x6e, 0x92, 0x74, 0xd7, 0x7d, 0x78, 0x8d, 0x7a, + 0xbb, 0x3e, 0xed, 0x93, 0x91, 0x43, 0x46, 0xf6, 0x75, 0xb8, 0x50, 0xe3, 0x26, 0x91, 0x98, 0xe8, + 0xee, 0xc3, 0x3e, 0x19, 0x09, 0x03, 0xba, 0x8e, 0xa4, 0x04, 0x5f, 0xb4, 0x92, 0xf5, 0x9b, 0xa4, + 0xec, 0x11, 0x2c, 0x73, 0x57, 0xf5, 0x09, 0xf5, 0x76, 0x93, 0xa1, 0x50, 0xb1, 0x01, 0x1d, 0x44, + 0x60, 0x37, 0x19, 0x96, 0x05, 0xa1, 0xc2, 0xe2, 0x2d, 0x06, 0x81, 0xcf, 0x5d, 0x22, 0x5a, 0xc8, + 0xd1, 0x28, 0x2c, 0x3e, 0xed, 0x12, 0x22, 0xf7, 0x47, 0x7c, 0x3e, 0x36, 0x9c, 0x82, 0xb6, 0xff, + 0xd6, 0x84, 0x79, 0x09, 0xa8, 0x98, 0x6a, 0xbc, 0x06, 0x2f, 0xf0, 0x42, 0x0a, 0xb3, 0xe5, 0xe0, + 0xa4, 0xdc, 0x6a, 0x22, 0xa5, 0x6e, 0x4e, 0x1b, 0xfa, 0xe6, 0xb4, 0x62, 0xd3, 0x5c, 0xdd, 0xa6, + 0xca, 0xb8, 0x9a, 0xf5, 0x71, 0xf1, 0xe4, 0x20, 0xd6, 0xcb, 0xfd, 0xc0, 0x4d, 0x0f, 0x59, 0x1c, + 0xca, 0x92, 0xba, 0xe9, 0xd4, 0xf8, 0x3c, 0x21, 0x21, 0xaf, 0xa8, 0x28, 0x70, 0x61, 0xa8, 0x70, + 0x79, 0xfe, 0x46, 0x4e, 0x5e, 0x59, 0xe0, 0x5e, 0x46, 0x67, 0xa2, 0x6d, 0x49, 0xe2, 0x33, 0x2a, + 0x72, 0x1b, 0x16, 0x10, 0x2a, 0x8b, 0x8f, 0x3c, 0x4c, 0x86, 0x37, 0x62, 0x16, 0xca, 0x1d, 0x4d, + 0x4e, 0x8a, 0x91, 0x33, 0x9a, 0xe6, 0x79, 0xb1, 0x83, 0xb2, 0x0a, 0x8b, 0xcb, 0x4a, 0x52, 0x54, + 0x0f, 0x8b, 0x4e, 0x4e, 0x5a, 0x2b, 0xd0, 0x48, 0xc8, 0x48, 0x96, 0x04, 0xfc, 0xa7, 0xe6, 0xb9, + 0x65, 0xdd, 0x73, 0x95, 0x35, 0x7e, 0x45, 0x7c, 0x55, 0xd7, 0x78, 0x1b, 0x16, 0xdd, 0x14, 0x2b, + 0x12, 0x11, 0xc8, 0xab, 0x1b, 0x0d, 0xbe, 0x4c, 0xab, 0x3c, 0x65, 0x71, 0xb5, 0xb4, 0xc5, 0xf5, + 0x1a, 0xcc, 0xb3, 0x88, 0xcf, 0x85, 0xa4, 0x77, 0x41, 0xcc, 0xc3, 0x4f, 0x4e, 0x9e, 0x87, 0x57, + 0xee, 0x62, 0xcb, 0xeb, 0x34, 0x8d, 0x1f, 0x39, 0xb9, 0x9c, 0x75, 0x07, 0x96, 0xd9, 0xe1, 0x61, + 0xe0, 0x53, 0xb2, 0x9f, 0x25, 0x47, 0xa2, 0x3c, 0xbf, 0x28, 0x96, 0x2f, 0x7b, 0xdc, 0xf2, 0xa5, + 0xb7, 0x74, 0xaa, 0xa2, 0xeb, 0xaf, 0xc1, 0xa2, 0xda, 0x0d, 0x87, 0xea, 0x98, 0x3c, 0x92, 0x71, + 0xca, 0x7f, 0xf2, 0x8c, 0x73, 0xe2, 0x06, 0x19, 0x66, 0xf0, 0x05, 0x07, 0x89, 0xd7, 0xcc, 0x2f, + 0x18, 0xf6, 0x8f, 0x0d, 0x58, 0xae, 0x74, 0xc0, 0x5b, 0xa7, 0x7e, 0x1a, 0x10, 0xa9, 0x01, 0x09, + 0x5e, 0x1d, 0x79, 0x24, 0x19, 0xc8, 0x30, 0x17, 0xbf, 0x65, 0x9e, 0x69, 0x14, 0x7b, 0x5e, 0x1b, + 0x16, 0xfd, 0xbb, 0x7d, 0xae, 0xa8, 0xcf, 0x32, 0xea, 0x15, 0xe7, 0x56, 0x0a, 0x8f, 0x87, 0x99, + 0x7f, 0xb7, 0xbf, 0xe5, 0x7a, 0x43, 0x82, 0xa7, 0x4b, 0x4d, 0x61, 0x93, 0xce, 0xb4, 0x3d, 0x58, + 0xb8, 0xe7, 0x47, 0xc9, 0x36, 0x0b, 0x43, 0xee, 0x08, 0x8f, 0xa4, 0x3c, 0x8f, 0x1b, 0x22, 0x26, + 0x24, 0xc5, 0xc3, 0xc9, 0x23, 0x87, 0x6e, 0x16, 0xa4, 0xbc, 0x69, 0x3e, 0xb9, 0x15, 0x96, 0x38, + 0x57, 0x49, 0x18, 0xdd, 0x41, 0x69, 0xb4, 0x53, 0xe1, 0xd8, 0x7f, 0x32, 0x61, 0x45, 0xec, 0x7e, + 0xb6, 0x45, 0x68, 0x78, 0x42, 0xe8, 0x15, 0x68, 0x8a, 0xa9, 0x2a, 0x33, 0xca, 0xe9, 0x3b, 0x26, + 0x6c, 0x6a, 0x5d, 0x85, 0x16, 0x8b, 0x44, 0x1a, 0xc2, 0x64, 0xf7, 0xc2, 0x24, 0x21, 0xfd, 0x08, + 0xcb, 0x91, 0x52, 0xd6, 0x0d, 0x80, 0xb0, 0xcc, 0x3a, 0xb8, 0xbc, 0x4f, 0xab, 0x43, 0x91, 0xe4, + 0xe0, 0x16, 0x4b, 0x75, 0x71, 0x8e, 0xd5, 0x70, 0x74, 0xa6, 0xb5, 0x07, 0x4b, 0xc2, 0xec, 0xbb, + 0xf9, 0xd6, 0x59, 0xf8, 0x60, 0xfa, 0x1e, 0x2b, 0xd2, 0xf6, 0xcf, 0x0d, 0x09, 0x23, 0xff, 0xda, + 0x27, 0x88, 0x7d, 0x09, 0x89, 0x31, 0x13, 0x24, 0xeb, 0xb0, 0x10, 0x66, 0xca, 0x4e, 0xbe, 0xe1, + 0x14, 0x74, 0xe9, 0xa2, 0xc6, 0xd4, 0x2e, 0xb2, 0x7f, 0x61, 0x40, 0xef, 0x0d, 0xe6, 0x53, 0xf1, + 0xe1, 0x5a, 0x14, 0x05, 0xf2, 0xb0, 0x75, 0x66, 0x9f, 0x7f, 0x05, 0xda, 0x2e, 0xaa, 0xa1, 0xa9, + 0x74, 0xfb, 0x14, 0xbb, 0xf3, 0x52, 0x46, 0xd9, 0x68, 0x35, 0xd4, 0x8d, 0x96, 0xfd, 0x9e, 0x01, + 0x4b, 0x08, 0xca, 0x9b, 0x99, 0x9f, 0xce, 0x6c, 0xdf, 0x16, 0x2c, 0x8c, 0x32, 0x3f, 0x9d, 0x21, + 0x2a, 0x0b, 0xb9, 0x7a, 0x3c, 0x35, 0xc6, 0xc4, 0x93, 0xfd, 0xbe, 0x01, 0x97, 0xaa, 0xb0, 0x5e, + 0x1b, 0x0c, 0x48, 0xf4, 0x24, 0xa7, 0x94, 0xb6, 0xd1, 0x9c, 0xab, 0x6c, 0x34, 0xc7, 0x9a, 0xec, + 0x90, 0x77, 0xc8, 0xe0, 0xe9, 0x35, 0xf9, 0xfb, 0x26, 0x7c, 0xe4, 0x66, 0x31, 0xf1, 0xee, 0xc5, + 0x2e, 0x4d, 0x0e, 0x49, 0x1c, 0x3f, 0x41, 0x7b, 0xef, 0x40, 0x97, 0x92, 0x07, 0xa5, 0x4d, 0x72, + 0x3a, 0x4e, 0xab, 0x46, 0x17, 0x9e, 0x6e, 0xed, 0xb2, 0xff, 0x6d, 0xc0, 0x0a, 0xea, 0xf9, 0xaa, + 0x3f, 0x38, 0x7e, 0x82, 0x83, 0xdf, 0x83, 0xa5, 0x63, 0x61, 0x01, 0xa7, 0x66, 0x58, 0xb6, 0x2b, + 0xd2, 0x53, 0x0e, 0xff, 0x3f, 0x06, 0xac, 0xa2, 0xa2, 0xdb, 0xf4, 0xc4, 0x7f, 0x92, 0xc1, 0xba, + 0x0f, 0xcb, 0x3e, 0x9a, 0x30, 0x23, 0x00, 0x55, 0xf1, 0x29, 0x11, 0xf8, 0xad, 0x01, 0xcb, 0xa8, + 0xe9, 0x3a, 0x4d, 0x49, 0x3c, 0xf3, 0xf8, 0x6f, 0x41, 0x87, 0xd0, 0x34, 0x76, 0xe9, 0x2c, 0x2b, + 0xa4, 0x2a, 0x3a, 0xe5, 0x22, 0xf9, 0x9e, 0x01, 0x96, 0x50, 0xb5, 0xe3, 0x27, 0xa1, 0x9f, 0x24, + 0x4f, 0xd0, 0x75, 0xd3, 0x19, 0xfc, 0x53, 0x13, 0x2e, 0x2a, 0x5a, 0x76, 0xb3, 0xf4, 0x69, 0x37, + 0xd9, 0xda, 0x81, 0x36, 0xaf, 0x11, 0xd4, 0x1b, 0x8c, 0x69, 0x3b, 0x2a, 0x05, 0x79, 0x15, 0x2b, + 0x88, 0x3e, 0x19, 0x30, 0xea, 0x25, 0xa2, 0x38, 0xea, 0x3a, 0x1a, 0x8f, 0x2f, 0x43, 0xeb, 0x8a, + 0x9a, 0x6d, 0x97, 0x0e, 0x48, 0xf0, 0xcc, 0x40, 0x64, 0xff, 0xca, 0x80, 0x25, 0x6c, 0xf2, 0xf4, + 0x0f, 0x99, 0xe7, 0x7a, 0x0c, 0xe4, 0x0f, 0x8d, 0x97, 0x78, 0x78, 0xad, 0x29, 0x5a, 0xd4, 0xba, + 0xfa, 0xe9, 0x0d, 0xad, 0x5b, 0xd0, 0x19, 0x1c, 0xb9, 0x74, 0x38, 0x53, 0x70, 0xa9, 0xa2, 0x76, + 0x0a, 0xcf, 0xa9, 0x87, 0x76, 0xdb, 0xf8, 0x49, 0x0c, 0xff, 0xd5, 0xca, 0x50, 0x4e, 0xbd, 0xa1, + 0x7c, 0x3c, 0xd0, 0x8f, 0x61, 0x15, 0x6f, 0x8a, 0x94, 0x9a, 0xd0, 0xea, 0xc1, 0xbc, 0xeb, 0xe1, + 0x21, 0x83, 0x21, 0x84, 0x72, 0x52, 0xbf, 0x03, 0x94, 0xcf, 0x3c, 0xca, 0x3b, 0xc0, 0xcb, 0x00, + 0xae, 0xe7, 0xbd, 0xc5, 0x62, 0xcf, 0xa7, 0x79, 0x81, 0xaf, 0x70, 0xec, 0x37, 0x60, 0xf1, 0x46, + 0xcc, 0xc2, 0x7b, 0xca, 0x9d, 0xcf, 0xa9, 0xb7, 0x52, 0xea, 0x7d, 0x91, 0xa9, 0xdf, 0x17, 0xd9, + 0xdf, 0x82, 0xff, 0xaf, 0x19, 0x2e, 0xc0, 0xda, 0xc6, 0xab, 0xac, 0xbc, 0x13, 0x19, 0x32, 0x1f, + 0x1b, 0x03, 0x99, 0x6a, 0x8b, 0xa3, 0x09, 0xd9, 0xdf, 0x33, 0xe0, 0xf9, 0x9a, 0xfa, 0x6b, 0x51, + 0x14, 0xb3, 0x13, 0xe9, 0x93, 0xf3, 0xe8, 0x46, 0x2f, 0x7e, 0xcd, 0x6a, 0xf1, 0x3b, 0xd6, 0x08, + 0xad, 0x60, 0xff, 0x00, 0x8c, 0xf8, 0xa5, 0x01, 0xcb, 0xd2, 0x08, 0xcf, 0x93, 0xdd, 0x7e, 0x1e, + 0x5a, 0x78, 0x0d, 0x2e, 0x3b, 0x7c, 0x7e, 0x6c, 0x87, 0xf9, 0xf5, 0xbd, 0x23, 0x1b, 0xd7, 0x23, + 0xd2, 0x1c, 0x37, 0xa3, 0xbe, 0x58, 0x04, 0xfb, 0xd4, 0x17, 0xd5, 0x52, 0xc0, 0xfe, 0x7a, 0x1e, + 0xcc, 0x3b, 0x24, 0x20, 0xe7, 0x89, 0x91, 0x7d, 0x1f, 0x96, 0xc4, 0x9d, 0x7c, 0x89, 0xc1, 0xb9, + 0xa8, 0x7d, 0x0b, 0x56, 0x84, 0xda, 0x73, 0xb7, 0xb7, 0x98, 0x1d, 0x1c, 0x1f, 0x75, 0x29, 0x39, + 0x17, 0xed, 0x9f, 0x85, 0x0b, 0x39, 0xf6, 0xf7, 0x23, 0xaf, 0x38, 0x44, 0x9a, 0x70, 0xbc, 0x6e, + 0x7f, 0x0e, 0xd6, 0xb6, 0x19, 0x3d, 0x21, 0x71, 0x82, 0x97, 0x0f, 0x42, 0x24, 0x97, 0xd0, 0x26, + 0xbf, 0xa4, 0xec, 0x77, 0x60, 0x5d, 0x95, 0xe8, 0x93, 0x74, 0x3f, 0xf6, 0x4f, 0x14, 0x29, 0x79, + 0xfc, 0x6c, 0x68, 0xc7, 0xcf, 0xe5, 0x71, 0xb5, 0xa9, 0x1d, 0x57, 0x5f, 0x82, 0xb6, 0x9f, 0x48, + 0x05, 0x22, 0xa8, 0x16, 0x9c, 0x92, 0x61, 0xf7, 0x61, 0x55, 0xde, 0x92, 0xef, 0xbb, 0x43, 0x9f, + 0xe2, 0x0a, 0x78, 0x19, 0x20, 0x72, 0x87, 0xf9, 0x2b, 0x19, 0xbc, 0xa9, 0x50, 0x38, 0xfc, 0x7b, + 0x72, 0xc4, 0x1e, 0xc8, 0xef, 0x26, 0x7e, 0x2f, 0x39, 0xf6, 0xd7, 0xc0, 0x72, 0x48, 0x12, 0x31, + 0x9a, 0x10, 0x45, 0xeb, 0x06, 0x74, 0xb6, 0xb3, 0x38, 0x26, 0x94, 0x77, 0x95, 0x3f, 0x19, 0x51, + 0x59, 0x5c, 0x6f, 0xbf, 0xd4, 0x8b, 0xa7, 0xdb, 0x0a, 0xc7, 0xfe, 0x59, 0x03, 0xda, 0x7d, 0x7f, + 0x48, 0xdd, 0xc0, 0x21, 0x23, 0xeb, 0x4b, 0xd0, 0xc2, 0xfd, 0x84, 0x74, 0xe3, 0xb8, 0x93, 0x54, + 0x6c, 0x8d, 0x1b, 0x27, 0x87, 0x8c, 0x6e, 0xfd, 0x9f, 0x23, 0x65, 0xac, 0x37, 0xa1, 0x8b, 0xbf, + 0x6e, 0xe3, 0xf9, 0x90, 0x4c, 0x2e, 0x9f, 0x3a, 0x43, 0x89, 0x6c, 0x8d, 0xba, 0x74, 0x0d, 0xdc, + 0xa0, 0x81, 0xa8, 0x37, 0xe4, 0xdc, 0x9d, 0x6c, 0x10, 0x96, 0x25, 0xd2, 0x20, 0x94, 0xe1, 0xd2, + 0xae, 0x38, 0x41, 0x91, 0x69, 0x74, 0xb2, 0x34, 0x1e, 0xb4, 0x48, 0x69, 0x94, 0xe1, 0xd2, 0x47, + 0x19, 0x1d, 0xde, 0x8f, 0xe4, 0xc1, 0xde, 0x64, 0xe9, 0x5b, 0xa2, 0x99, 0x94, 0x46, 0x19, 0x2e, + 0x1d, 0x8b, 0x95, 0x55, 0x80, 0x7e, 0x9a, 0x34, 0x2e, 0xc0, 0x52, 0x1a, 0x65, 0xb6, 0xda, 0x30, + 0x1f, 0xb9, 0x8f, 0x02, 0xe6, 0x7a, 0xf6, 0xbb, 0x0d, 0x80, 0xbc, 0x61, 0x22, 0xaa, 0x10, 0xcd, + 0x45, 0x9b, 0x67, 0xba, 0x28, 0x0a, 0x1e, 0x29, 0x4e, 0xea, 0x8f, 0x77, 0xd2, 0xa7, 0xa7, 0x75, + 0x12, 0x6a, 0xab, 0xb8, 0xe9, 0x6a, 0xc5, 0x4d, 0x9b, 0x67, 0xba, 0x49, 0x1a, 0x25, 0x1d, 0x75, + 0xb5, 0xe2, 0xa8, 0xcd, 0x33, 0x1d, 0x25, 0xe5, 0xa5, 0xab, 0xae, 0x56, 0x5c, 0xb5, 0x79, 0xa6, + 0xab, 0xa4, 0xbc, 0x74, 0xd6, 0xd5, 0x8a, 0xb3, 0x36, 0xcf, 0x74, 0x96, 0x94, 0xaf, 0xbb, 0xeb, + 0x7d, 0x13, 0x96, 0x04, 0x64, 0x78, 0xd3, 0x47, 0x0f, 0x99, 0x38, 0xac, 0x17, 0x70, 0xe9, 0x8f, + 0xae, 0x74, 0xa6, 0xf5, 0x19, 0x58, 0x45, 0x06, 0x51, 0xae, 0x54, 0x4c, 0x71, 0xa5, 0x52, 0xff, + 0x20, 0xee, 0x66, 0xb2, 0x24, 0x65, 0xe1, 0x8e, 0x9b, 0xba, 0x79, 0x65, 0x54, 0x72, 0xd4, 0x9b, + 0xb3, 0xb9, 0xda, 0xb3, 0xce, 0x98, 0xb1, 0xb0, 0xb8, 0x12, 0x93, 0x14, 0x97, 0x48, 0xfd, 0x90, + 0xb0, 0x2c, 0x95, 0xcb, 0x44, 0x4e, 0xe2, 0xc3, 0x08, 0xcf, 0x77, 0xc5, 0x7d, 0x93, 0x7c, 0x35, + 0x50, 0x30, 0xc4, 0xca, 0x56, 0xde, 0x9f, 0xc9, 0x67, 0x97, 0x25, 0xe7, 0xec, 0xbb, 0x2e, 0xfb, + 0xef, 0x06, 0x5c, 0xd8, 0x77, 0xe3, 0xd4, 0x1f, 0xf8, 0x91, 0x4b, 0xd3, 0x5d, 0x92, 0xba, 0x62, + 0x0c, 0xda, 0xcb, 0x2b, 0xe3, 0xf1, 0x5e, 0x5e, 0xed, 0xc3, 0xf2, 0x50, 0x2f, 0xfd, 0x1f, 0xb3, + 0x6a, 0xaf, 0x8a, 0x6b, 0xcf, 0xc8, 0x1a, 0x8f, 0xfd, 0x8c, 0xcc, 0xfe, 0xa1, 0x09, 0xcb, 0x95, + 0xa5, 0x93, 0x97, 0xa3, 0x58, 0x68, 0x14, 0x31, 0x51, 0xd0, 0xd6, 0x35, 0x00, 0xbf, 0x08, 0xa3, + 0x53, 0x4e, 0xc6, 0xf5, 0x58, 0x73, 0x14, 0xa1, 0x71, 0x17, 0x64, 0x8d, 0x99, 0x2f, 0xc8, 0xf8, + 0xc6, 0x24, 0x2a, 0x9d, 0x74, 0xca, 0xc6, 0x64, 0x8c, 0x2b, 0x1d, 0x55, 0xd4, 0xfe, 0x26, 0xac, + 0xd6, 0x56, 0x28, 0x71, 0x5f, 0xc6, 0x8e, 0x09, 0x2d, 0xee, 0xcb, 0x38, 0xa1, 0x04, 0xab, 0x59, + 0x0d, 0xd6, 0xc0, 0x3f, 0x51, 0xdf, 0xa9, 0x4a, 0xd2, 0xfe, 0x91, 0x09, 0x6b, 0xe3, 0xb3, 0xcb, + 0xb3, 0x0a, 0xf7, 0x01, 0xf4, 0x26, 0xad, 0xe4, 0xe7, 0x86, 0x7a, 0x19, 0xdd, 0x45, 0x1e, 0x7e, + 0x56, 0xe1, 0xbe, 0x90, 0x47, 0xb7, 0x92, 0xea, 0xec, 0xdf, 0x14, 0xf8, 0x14, 0x95, 0xc6, 0x33, + 0x8a, 0x8f, 0xf5, 0x12, 0xac, 0xe0, 0x30, 0x95, 0x57, 0x17, 0x58, 0xb8, 0xd6, 0xf8, 0xe5, 0x4a, + 0xa1, 0xa4, 0xfd, 0x73, 0x8b, 0xd9, 0x3f, 0x18, 0xb9, 0x4f, 0x8a, 0xfa, 0xed, 0x43, 0xe5, 0x93, + 0x32, 0xd2, 0x94, 0xa2, 0x46, 0x89, 0xb4, 0xa2, 0xae, 0xfc, 0x5f, 0xa4, 0x9d, 0x1d, 0x69, 0x05, + 0x96, 0x4a, 0x81, 0x67, 0x7f, 0x17, 0xba, 0x3b, 0x24, 0xd8, 0x4d, 0x86, 0xf9, 0x7b, 0xaf, 0xd3, + 0x80, 0x9c, 0xf4, 0x77, 0x99, 0x89, 0x2f, 0xbd, 0xaa, 0xaf, 0xc4, 0xe6, 0x6a, 0xaf, 0xc4, 0xec, + 0x2d, 0x58, 0x52, 0x0d, 0x98, 0xe5, 0xb9, 0xdb, 0xd6, 0xa5, 0x6f, 0xac, 0x5f, 0x79, 0x19, 0xff, + 0x98, 0xf5, 0x7a, 0x0d, 0xc4, 0x83, 0x96, 0xf8, 0xa3, 0xd6, 0xab, 0xff, 0x0d, 0x00, 0x00, 0xff, + 0xff, 0x6d, 0x01, 0x85, 0x88, 0xbb, 0x35, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index f8db4047c..7e1322e50 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -210,9 +210,10 @@ message MsgData { uint32 seq = 14; int64 sendTime = 15; int64 createTime = 16; - int32 status = 17; - map options = 18; - OfflinePushInfo offlinePushInfo = 19; + repeated string atUserIDList = 17; + int32 status = 18; + map options = 19; + OfflinePushInfo offlinePushInfo = 20; } message OfflinePushInfo{ From 4ba87e3349cc8f088c16de021461809d5f3db598 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 22 Apr 2022 16:41:41 +0800 Subject: [PATCH 15/57] workMoments --- internal/rpc/msg/work_moments_notification.go | 17 ++++++++--- internal/rpc/office/office.go | 10 +++++-- pkg/common/db/mongoModel.go | 29 +++++-------------- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/internal/rpc/msg/work_moments_notification.go b/internal/rpc/msg/work_moments_notification.go index 807266dfa..af333a354 100644 --- a/internal/rpc/msg/work_moments_notification.go +++ b/internal/rpc/msg/work_moments_notification.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" pbOffice "Open_IM/pkg/proto/office" + sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" @@ -11,17 +12,21 @@ import ( func WorkMomentSendNotification(operationID, sendID, recvID string, notificationMsg *pbOffice.WorkMomentNotificationMsg) { log.NewInfo(operationID, utils.GetSelfFuncName(), sendID, recvID, notificationMsg) + //if sendID == recvID { + // return + //} WorkMomentNotification(operationID, sendID, recvID, notificationMsg) } func WorkMomentNotification(operationID, sendID, recvID string, m proto.Message) { - //var tips open_im_sdk.TipsComm + var tips sdk.TipsComm + var err error marshaler := jsonpb.Marshaler{ OrigName: true, EnumsAsInts: false, EmitDefaults: false, } - JsonDetail, _ := marshaler.MarshalToString(m) + tips.JsonDetail, _ = marshaler.MarshalToString(m) n := &NotificationMsg{ SendID: sendID, RecvID: recvID, @@ -30,7 +35,11 @@ func WorkMomentNotification(operationID, sendID, recvID string, m proto.Message) SessionType: constant.SingleChatType, OperationID: operationID, } - n.Content = []byte(JsonDetail) - log.NewInfo(operationID, utils.GetSelfFuncName(), JsonDetail) + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "proto.Marshal failed") + return + } + log.NewInfo(operationID, utils.GetSelfFuncName(), string(n.Content)) Notification(n) } diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index 5f967938f..ea4095f04 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -381,7 +381,7 @@ func (s *officeServer) LikeOneWorkMoment(_ context.Context, req *pbOffice.LikeOn resp.CommonResp = &pbOffice.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } - workMoment, err := db.DB.LikeOneWorkMoment(req.UserID, userName, req.WorkMomentID) + workMoment, like, err := db.DB.LikeOneWorkMoment(req.UserID, userName, req.WorkMomentID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "LikeOneWorkMoment failed ", err.Error()) resp.CommonResp = &pbOffice.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} @@ -392,9 +392,13 @@ func (s *officeServer) LikeOneWorkMoment(_ context.Context, req *pbOffice.LikeOn WorkMomentID: workMoment.WorkMomentID, WorkMomentContent: workMoment.Content, UserID: workMoment.UserID, + FaceURL: workMoment.FaceURL, + UserName: workMoment.UserName, } // send notification - msg.WorkMomentSendNotification(req.OperationID, req.UserID, workMoment.UserID, workMomentNotificationMsg) + if like { + msg.WorkMomentSendNotification(req.OperationID, req.UserID, workMoment.UserID, workMomentNotificationMsg) + } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } @@ -436,6 +440,8 @@ func (s *officeServer) CommentOneWorkMoment(_ context.Context, req *pbOffice.Com WorkMomentID: workMoment.WorkMomentID, WorkMomentContent: workMoment.Content, UserID: workMoment.UserID, + FaceURL: workMoment.FaceURL, + UserName: workMoment.UserName, Comment: &pbOffice.Comment{ UserID: comment.UserID, UserName: comment.UserName, diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 0a593c5c7..f44799ecf 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -624,10 +624,10 @@ func (d *DataBases) GetWorkMomentByID(workMomentID string) (*WorkMoment, error) return workMoment, err } -func (d *DataBases) LikeOneWorkMoment(likeUserID, userName, workMomentID string) (*WorkMoment, error) { +func (d *DataBases) LikeOneWorkMoment(likeUserID, userName, workMomentID string) (*WorkMoment, bool, error) { workMoment, err := d.GetWorkMomentByID(workMomentID) if err != nil { - return nil, err + return nil, false, err } var isAlreadyLike bool for i, user := range workMoment.LikeUserList { @@ -643,7 +643,7 @@ func (d *DataBases) LikeOneWorkMoment(likeUserID, userName, workMomentID string) ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) _, err = c.UpdateOne(ctx, bson.M{"work_moment_id": workMomentID}, bson.M{"$set": bson.M{"like_user_list": workMoment.LikeUserList}}) - return workMoment, err + return workMoment, !isAlreadyLike, err } func (d *DataBases) SetUserWorkMomentsLevel(userID string, level int32) error { @@ -672,30 +672,17 @@ func (d *DataBases) GetUserWorkMoments(userID string, showNumber, pageNumber int return workMomentList, err } -// recursion -func (d *DataBases) GetUserFriendWorkMomentsRecursion(friendIDList []string, showNumber, pageNumber int32, userID string) ([]WorkMoment, error) { - ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) - c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) - var workMomentList []WorkMoment - findOpts := options.Find().SetLimit(int64(showNumber)).SetSkip(int64(showNumber) * (int64(pageNumber) - 1)).SetSort(bson.M{"create_time": -1}) - result, err := c.Find(ctx, bson.M{"user_id": friendIDList, "is_private": false, "who_can_see_user_id_list": bson.M{"$elemMatch": bson.M{"$eq": userID}}, "who_cant_see_user_id_list": ""}, findOpts) - if err != nil { - return workMomentList, nil - } - err = result.All(ctx, &workMomentList) - return workMomentList, err -} - func (d *DataBases) GetUserFriendWorkMoments(friendIDList []*string, showNumber, pageNumber int32, userID string) ([]WorkMoment, error) { ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) var workMomentList []WorkMoment findOpts := options.Find().SetLimit(int64(showNumber)).SetSkip(int64(showNumber) * (int64(pageNumber) - 1)).SetSort(bson.M{"create_time": -1}) - result, err := c.Find(ctx, bson.M{"user_id": friendIDList, "is_private": false, "$or": bson.M{"who_can_see_user_id_list": bson.M{"$elemMatch": bson.M{"$eq": userID}}, - "who_cant_see_user_id_list": bson.M{"$nin": userID}}, - }, findOpts) + result, err := c.Find(ctx, + bson.M{"user_id": friendIDList, "$or": bson.M{"who_can_see_user_id_list": bson.M{"$elemMatch": bson.M{"$eq": userID}}, + "who_cant_see_user_id_list": bson.M{"$nin": userID}}, + }, findOpts) if err != nil { - return workMomentList, nil + return workMomentList, err } err = result.All(ctx, &workMomentList) return workMomentList, err From f779ed7628b7bd836d439c50eb096e999b4ff555 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 22 Apr 2022 17:19:35 +0800 Subject: [PATCH 16/57] workMoments --- config/config.yaml | 15 ++++++++++++++- internal/rpc/msg/send_msg.go | 15 +++++++++++++++ pkg/common/config/config.go | 5 +++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 598f8bfc2..45be10f1a 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -600,7 +600,7 @@ notification: conversationSetPrivate: conversation: - reliabilityLevel: 2 + reliabilityLevel: 3 unreadCount: true offlinePush: switch: true @@ -611,6 +611,19 @@ notification: openTips: "burn after reading was opened" closeTips: "burn after reading was closed" + ###################workMoments################ + workMomentsNotification: + conversation: + reliabilityLevel: 2 + unreadCount: true + offlinePush: + switch: true + title: "burn after reading" + desc: "burn after reading" + ext: "burn after reading" + defaultTips: + openTips: "burn after reading was opened" + closeTips: "burn after reading was closed" #---------------demo configuration---------------------# diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 45f3ce70d..141c072ec 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -594,6 +594,21 @@ func Notification(n *NotificationMsg) { reliabilityLevel = config.Config.Notification.OrganizationChanged.Conversation.ReliabilityLevel unReadCount = config.Config.Notification.OrganizationChanged.Conversation.UnreadCount + case constant.WorkMomentNotification: + pushSwitch = config.Config.Notification.WorkMomentsNotification.OfflinePush.PushSwitch + title = config.Config.Notification.WorkMomentsNotification.OfflinePush.Title + desc = config.Config.Notification.WorkMomentsNotification.OfflinePush.Desc + ex = config.Config.Notification.WorkMomentsNotification.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.WorkMomentsNotification.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.WorkMomentsNotification.Conversation.UnreadCount + + case constant.ConversationPrivateChatNotification: + pushSwitch = config.Config.Notification.ConversationSetPrivate.OfflinePush.PushSwitch + title = config.Config.Notification.ConversationSetPrivate.OfflinePush.Title + desc = config.Config.Notification.ConversationSetPrivate.OfflinePush.Desc + ex = config.Config.Notification.ConversationSetPrivate.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.ConversationSetPrivate.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.ConversationSetPrivate.Conversation.UnreadCount } switch reliabilityLevel { case constant.UnreliableNotification: diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 926ada32e..aed2c1173 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -382,6 +382,11 @@ type config struct { CloseTips string `yaml:"closeTips"` } `yaml:"defaultTips"` } `yaml:"conversationSetPrivate"` + WorkMomentsNotification struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } `yaml:"workMomentsNotification"` } Demo struct { Port []int `yaml:"openImDemoPort"` From 53ec93c8f8028c17e42d1406e91bae7e3b4b6e15 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 22 Apr 2022 18:36:02 +0800 Subject: [PATCH 17/57] minio config --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 45be10f1a..39a69298f 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -92,8 +92,8 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化InitSDK,中 object_storage参数为minio bucket: openim location: us-east-1 - endpoint: http://127.0.0.1:9000 - endpointInner: http://127.0.0.1:9000 #minio内网地址 + endpoint: http://127.0.0.1:9000 #minio外网ip 这个ip是给客户端访问的 + endpointInner: http://127.0.0.1:9000 #minio内网地址 如果im server 可以通过内网访问到 minio就可以填写 endpointInnerEnable: true #是否启用minio内网地址 启用可以让桶初始化,IM server连接minio走内网地址访问 accessKeyID: user12345 secretAccessKey: key12345 From e682b408f318bcedded34eab73d9d7b4d3e69fdc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 22 Apr 2022 19:44:58 +0800 Subject: [PATCH 18/57] conversation update --- pkg/proto/conversation/conversation.proto | 308 ++-------------------- pkg/proto/sdk_ws/ws.proto | 9 +- 2 files changed, 26 insertions(+), 291 deletions(-) diff --git a/pkg/proto/conversation/conversation.proto b/pkg/proto/conversation/conversation.proto index 7821eeaaf..2dfcc7ed5 100644 --- a/pkg/proto/conversation/conversation.proto +++ b/pkg/proto/conversation/conversation.proto @@ -6,297 +6,33 @@ message CommonResp{ int32 errCode = 1; string errMsg = 2; } - -message DeleteUsersReq{ - repeated string DeleteUserIDList = 2; - string OpUserID = 3; - string OperationID = 4; -} - -message DeleteUsersResp{ - CommonResp CommonResp = 1; - repeated string FailedUserIDList = 2; -} - - -message GetAllUserIDReq{ - string opUserID = 1; - string operationID = 2; -} -message GetAllUserIDResp{ - CommonResp CommonResp = 1; - repeated string UserIDList = 2; -} - - -message AccountCheckReq{ - repeated string CheckUserIDList = 1; - string OpUserID = 2; - string OperationID = 3; - -} -message AccountCheckResp{ - CommonResp commonResp = 1; - message SingleUserStatus { - string userID = 1; - string accountStatus = 2; - } - repeated SingleUserStatus ResultList = 2; -} - - -message GetUserInfoReq{ - repeated string userIDList = 1; - string OpUserID = 2; - string OperationID = 3; -} -message GetUserInfoResp{ - CommonResp commonResp = 1; - repeated server_api_params.UserInfo UserInfoList = 3; -} - - - -message UpdateUserInfoReq{ - server_api_params.UserInfo UserInfo = 1; - string OpUserID = 2; - string operationID = 3; -} -message UpdateUserInfoResp{ - CommonResp commonResp = 1; -} - message Conversation{ - string OwnerUserID = 1; - string ConversationID = 2; - int32 RecvMsgOpt = 3; - int32 ConversationType = 4; - string UserID = 5; - string GroupID = 6; - int32 UnreadCount = 7; - int64 DraftTextTime = 8; - bool IsPinned = 9; - string AttachedInfo = 10; - bool IsPrivateChat = 11; - int32 GroupAtType = 12; - bool IsNotInGroup = 13; - string Ex = 14; + string ownerUserID = 1; + string conversationID = 2; + int32 recvMsgOpt = 3; + int32 conversationType = 4; + string userID = 5; + string groupID = 6; + int32 unreadCount = 7; + int64 draftTextTime = 8; + bool isPinned = 9; + string attachedInfo = 10; + bool isPrivateChat = 11; + int32 groupAtType = 12; + bool isNotInGroup = 13; + string ex = 14; +} +message ModifyConversationFieldReq{ + Conversation conversation = 1; + int32 fieldType = 2; + repeated string userIDList = 3; + string operationID = 4; } -message ModifyConversationFiledReq{ - Conversation Conversation = 1; - int32 notificationType = 2; - string OperationID = 3; -} - -message SetConversationResp{ +message ModifyConversationFieldResp{ CommonResp commonResp = 1; } - -message SetRecvMsgOptReq { - string OwnerUserID = 1; - string ConversationID = 2; - int32 RecvMsgOpt = 3; - int32 notificationType = 4; - string OperationID = 5; -} - -message SetRecvMsgOptResp { - CommonResp commonResp = 1; -} - -message GetConversationReq{ - string ConversationID = 1; - string OwnerUserID = 2; - string OperationID = 3; -} - -message GetConversationResp{ - CommonResp commonResp = 1; - Conversation Conversation = 2; -} - -message GetConversationsReq{ - string OwnerUserID = 1; - repeated string ConversationIDs = 2; - string OperationID = 3; -} - -message GetConversationsResp{ - CommonResp commonResp = 1; - repeated Conversation Conversations = 2; -} - -message GetAllConversationsReq{ - string OwnerUserID = 1; - string OperationID = 2; -} - -message GetAllConversationsResp{ - CommonResp commonResp = 1; - repeated Conversation Conversations = 2; -} - -message BatchSetConversationsReq{ - repeated Conversation Conversations = 1; - string OwnerUserID = 2; - int32 notificationType = 3; - string OperationID = 4; -} - -message BatchSetConversationsResp{ - CommonResp commonResp = 1; - repeated string Success = 2; - repeated string Failed = 3; -} - -message ResignUserReq{ - string UserId = 1; - string OperationID = 2; -} - -message ResignUserResp{ - CommonResp commonResp = 1; -} - -message GetUserByIdReq{ - string UserId = 1; - string OperationID = 2; -} - -message User{ - string ProfilePhoto = 1; - string Nickname = 2; - string UserId = 3; - string CreateTime = 4; - bool IsBlock = 5; -} - -message GetUserByIdResp{ - CommonResp CommonResp = 1; - User user = 2; -} - -message GetUsersByNameReq { - string UserName = 1; - server_api_params.RequestPagination Pagination = 2; - string OperationID = 3; -} - -message GetUsersByNameResp { - repeated User users = 1; - server_api_params.ResponsePagination Pagination = 2; - int32 UserNums = 3; -} - -message AlterUserReq{ - string UserId = 1; - string OperationID = 2; - int64 PhoneNumber = 3; - string Nickname = 4; - string Email = 5; - string OpUserId = 6; -} - -message AlterUserResp{ - CommonResp CommonResp = 1; -} - -message GetUsersReq { - string OperationID = 1; - server_api_params.RequestPagination Pagination = 2; - string UserName = 3; -} - -message GetUsersResp{ - CommonResp CommonResp = 1; - repeated User user = 2; - server_api_params.ResponsePagination Pagination = 3; - int32 UserNums = 4; -} - -message AddUserReq{ - string OperationID = 1; - string PhoneNumber = 2; - string UserId = 3; - string name = 4; - string OpUserId = 5; -} - -message AddUserResp{ - CommonResp CommonResp = 1; -} - - -message BlockUserReq{ - string UserId = 1; - string EndDisableTime = 2; - string OperationID = 3; - string OpUserId = 4; -} - -message BlockUserResp{ - CommonResp CommonResp = 1; -} - -message UnBlockUserReq{ - string UserId = 1; - string OperationID = 2; - string OpUserId = 3; -} - -message UnBlockUserResp{ - CommonResp CommonResp = 1; -} - -message GetBlockUsersReq{ - server_api_params.RequestPagination Pagination = 1; - string OperationID = 2; - int32 BlockUserNum = 3; -} - -message BlockUser { - User User = 1; - string BeginDisableTime = 2; - string EndDisableTime = 3; -} - -message GetBlockUsersResp{ - CommonResp CommonResp = 1; - repeated BlockUser BlockUsers = 2; - server_api_params.ResponsePagination Pagination = 3; - int32 UserNums = 4; -} - -message GetBlockUserByIdReq { - string User_id = 1; - string OperationID = 2; -} - -message GetBlockUserByIdResp { - BlockUser BlockUser = 2; -} - -message DeleteUserReq { - string User_id = 1; - string OperationID = 2; - string OpUserId = 3; -} - -message DeleteUserResp { - CommonResp CommonResp = 1; -} - - - service user { - rpc AccountCheck(AccountCheckReq)returns(AccountCheckResp); - rpc GetConversation(GetConversationReq)returns(GetConversationResp); - rpc GetAllConversations(GetAllConversationsReq)returns(GetAllConversationsResp); - rpc GetConversations(GetConversationsReq)returns(GetConversationsResp); - rpc BatchSetConversations(BatchSetConversationsReq)returns(BatchSetConversationsResp); - rpc SetConversation(SetConversationReq)returns(SetConversationResp); - rpc SetRecvMsgOpt(SetRecvMsgOptReq)returns(SetRecvMsgOptResp); - + rpc ModifyConversationField(ModifyConversationFieldReq)returns(ModifyConversationFieldResp); } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 7e1322e50..713c4574f 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -210,12 +210,11 @@ message MsgData { uint32 seq = 14; int64 sendTime = 15; int64 createTime = 16; - repeated string atUserIDList = 17; - int32 status = 18; - map options = 19; - OfflinePushInfo offlinePushInfo = 20; + int32 status = 17; + map options = 18; + OfflinePushInfo offlinePushInfo = 19; } - +// repeated string atUserIDList = 20; message OfflinePushInfo{ string title = 1; string desc = 2; From 91303acdbe375ef62d78de6999b6e0528dfade25 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 22 Apr 2022 19:45:29 +0800 Subject: [PATCH 19/57] conversation update --- pkg/proto/sdk_ws/ws.pb.go | 544 +++++++++++++++++++------------------- 1 file changed, 268 insertions(+), 276 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index fd5fd76a0..582686707 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -40,7 +40,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{0} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -165,7 +165,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{1} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -277,7 +277,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{2} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -352,7 +352,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{3} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -459,7 +459,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{4} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -544,7 +544,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{5} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -625,7 +625,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{6} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -733,7 +733,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{7} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -878,7 +878,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{8} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{8} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -989,7 +989,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{9} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{9} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1103,7 +1103,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{10} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{10} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1184,7 +1184,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{11} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{11} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1230,7 +1230,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{12} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{12} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1277,7 +1277,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{13} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{13} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1331,7 +1331,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{14} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1382,7 +1382,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_ws_e4200fdb78b83da6, []int{15} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{15} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1414,7 +1414,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_ws_e4200fdb78b83da6, []int{16} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{16} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1461,7 +1461,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{17} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{17} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1518,10 +1518,9 @@ type MsgData struct { Seq uint32 `protobuf:"varint,14,opt,name=seq" json:"seq,omitempty"` SendTime int64 `protobuf:"varint,15,opt,name=sendTime" json:"sendTime,omitempty"` CreateTime int64 `protobuf:"varint,16,opt,name=createTime" json:"createTime,omitempty"` - AtUserIDList []string `protobuf:"bytes,17,rep,name=atUserIDList" json:"atUserIDList,omitempty"` - Status int32 `protobuf:"varint,18,opt,name=status" json:"status,omitempty"` - Options map[string]bool `protobuf:"bytes,19,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,20,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Status int32 `protobuf:"varint,17,opt,name=status" json:"status,omitempty"` + Options map[string]bool `protobuf:"bytes,18,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1531,7 +1530,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{18} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{18} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1656,13 +1655,6 @@ func (m *MsgData) GetCreateTime() int64 { return 0 } -func (m *MsgData) GetAtUserIDList() []string { - if m != nil { - return m.AtUserIDList - } - return nil -} - func (m *MsgData) GetStatus() int32 { if m != nil { return m.Status @@ -1684,6 +1676,7 @@ func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { return nil } +// repeated string atUserIDList = 17; type OfflinePushInfo struct { Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` Desc string `protobuf:"bytes,2,opt,name=desc" json:"desc,omitempty"` @@ -1699,7 +1692,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{19} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{19} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1767,7 +1760,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{20} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{20} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1824,7 +1817,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{21} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{21} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1893,7 +1886,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{22} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{22} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1948,7 +1941,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{23} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{23} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2004,7 +1997,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{24} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{24} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2059,7 +2052,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{25} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{25} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2114,7 +2107,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{26} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{26} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2170,7 +2163,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{27} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{27} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2233,7 +2226,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{28} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{28} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2296,7 +2289,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{29} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{29} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2358,7 +2351,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{30} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{30} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2412,7 +2405,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{31} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{31} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2468,7 +2461,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{32} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{32} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2537,7 +2530,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{33} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{33} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2598,7 +2591,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{34} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{34} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -2652,7 +2645,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{35} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{35} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -2707,7 +2700,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{36} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{36} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -2767,7 +2760,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{37} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{37} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -2814,7 +2807,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{38} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{38} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2867,7 +2860,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{39} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{39} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2913,7 +2906,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{40} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{40} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2953,7 +2946,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{41} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{41} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3000,7 +2993,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{42} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{42} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3048,7 +3041,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{43} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{43} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3101,7 +3094,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{44} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{44} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3139,7 +3132,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{45} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{45} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3177,7 +3170,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{46} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{46} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3215,7 +3208,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{47} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{47} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3254,7 +3247,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{48} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{48} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3293,7 +3286,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{49} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{49} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3333,7 +3326,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{50} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{50} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3387,7 +3380,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{51} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{51} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3433,7 +3426,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{52} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{52} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3486,7 +3479,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{53} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{53} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -3753,7 +3746,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{54} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{54} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4021,7 +4014,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{55} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{55} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4117,7 +4110,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{56} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{56} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4172,7 +4165,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{57} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{57} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4233,7 +4226,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{58} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{58} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4288,7 +4281,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{59} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{59} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4349,7 +4342,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{60} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{60} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4404,7 +4397,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{61} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{61} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4462,7 +4455,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{62} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{62} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -4497,7 +4490,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{63} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{63} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -4565,7 +4558,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{64} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{64} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -4619,7 +4612,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{65} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{65} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -4670,7 +4663,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{66} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{66} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -4705,7 +4698,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{67} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{67} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -4770,7 +4763,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{68} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{68} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -4804,7 +4797,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{69} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{69} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -4864,7 +4857,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e4200fdb78b83da6, []int{70} + return fileDescriptor_ws_0aa1613bcc1a3980, []int{70} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -4973,199 +4966,198 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_e4200fdb78b83da6) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_0aa1613bcc1a3980) } -var fileDescriptor_ws_e4200fdb78b83da6 = []byte{ - // 3049 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x24, 0x49, - 0xd1, 0xff, 0xaa, 0xda, 0xdd, 0x76, 0x47, 0xbb, 0xfd, 0xa8, 0x99, 0xcf, 0xdb, 0x98, 0xd9, 0xc1, - 0x14, 0xd6, 0xb2, 0x2c, 0x30, 0x8b, 0x76, 0x85, 0x04, 0xbb, 0x30, 0x68, 0x6c, 0xcf, 0x6b, 0x19, - 0x7b, 0xbc, 0xd5, 0x33, 0x2c, 0x02, 0xa4, 0x55, 0xb9, 0x2b, 0xdd, 0xae, 0x75, 0x55, 0x66, 0x75, - 0x3d, 0x3c, 0x33, 0x08, 0x09, 0x09, 0x24, 0xc4, 0x8d, 0x13, 0x1c, 0xb8, 0x20, 0x71, 0x41, 0xa0, - 0xd5, 0x6a, 0x85, 0x40, 0xe2, 0x80, 0x10, 0x07, 0xfe, 0x01, 0x8e, 0x88, 0x0b, 0xe2, 0xcc, 0x95, - 0x03, 0x12, 0x12, 0x28, 0x33, 0xb2, 0xaa, 0x32, 0xab, 0xba, 0xed, 0x9e, 0x96, 0xb5, 0x33, 0xab, - 0xe1, 0xd6, 0x11, 0x95, 0x11, 0x19, 0xf9, 0x8b, 0xc8, 0x8c, 0xc8, 0x47, 0xc3, 0x72, 0xe2, 0x1d, - 0xbf, 0xfd, 0x20, 0x79, 0xf9, 0x41, 0x72, 0x25, 0x8a, 0x59, 0xca, 0xac, 0xd5, 0x84, 0xc4, 0x27, - 0x24, 0x7e, 0xdb, 0x8d, 0xfc, 0xb7, 0x23, 0x37, 0x76, 0xc3, 0xc4, 0xfe, 0xa7, 0x09, 0xed, 0x9b, - 0x31, 0xcb, 0xa2, 0xdb, 0xf4, 0x90, 0x59, 0x3d, 0x98, 0x1f, 0x0a, 0x62, 0xa7, 0x67, 0x6c, 0x18, - 0x2f, 0xb6, 0x9d, 0x9c, 0xb4, 0x2e, 0x41, 0x5b, 0xfc, 0xdc, 0x73, 0x43, 0xd2, 0x33, 0xc5, 0xb7, - 0x92, 0x61, 0xd9, 0xb0, 0x48, 0x59, 0xea, 0x1f, 0xfa, 0x03, 0x37, 0xf5, 0x19, 0xed, 0x35, 0x44, - 0x03, 0x8d, 0xc7, 0xdb, 0xf8, 0x34, 0x8d, 0x99, 0x97, 0x0d, 0x44, 0x9b, 0x39, 0x6c, 0xa3, 0xf2, - 0x78, 0xff, 0x87, 0xee, 0x80, 0xdc, 0x77, 0xee, 0xf4, 0x9a, 0xd8, 0xbf, 0x24, 0xad, 0x0d, 0xe8, - 0xb0, 0x07, 0x94, 0xc4, 0xf7, 0x13, 0x12, 0xdf, 0xde, 0xe9, 0xb5, 0xc4, 0x57, 0x95, 0x65, 0x5d, - 0x06, 0x18, 0xc4, 0xc4, 0x4d, 0xc9, 0x3d, 0x3f, 0x24, 0xbd, 0xf9, 0x0d, 0xe3, 0xc5, 0xae, 0xa3, - 0x70, 0xb8, 0x86, 0x90, 0x84, 0x07, 0x24, 0xde, 0x66, 0x19, 0x4d, 0x7b, 0x0b, 0xa2, 0x81, 0xca, - 0xb2, 0x96, 0xc0, 0x24, 0x0f, 0x7b, 0x6d, 0xa1, 0xda, 0x24, 0x0f, 0xad, 0x35, 0x68, 0x25, 0xa9, - 0x9b, 0x66, 0x49, 0x0f, 0x36, 0x8c, 0x17, 0x9b, 0x8e, 0xa4, 0xac, 0x4d, 0xe8, 0x0a, 0xbd, 0x2c, - 0xb7, 0xa6, 0x23, 0x44, 0x74, 0x66, 0x81, 0xd8, 0xbd, 0x47, 0x11, 0xe9, 0x2d, 0x0a, 0x05, 0x25, - 0xc3, 0xfe, 0x8b, 0x09, 0x17, 0x04, 0xee, 0xbb, 0xc2, 0x80, 0x1b, 0x59, 0x10, 0x9c, 0xe1, 0x81, - 0x35, 0x68, 0x65, 0xd8, 0x1d, 0xc2, 0x2f, 0x29, 0xde, 0x4f, 0xcc, 0x02, 0x72, 0x87, 0x9c, 0x90, - 0x40, 0x00, 0xdf, 0x74, 0x4a, 0x86, 0xb5, 0x0e, 0x0b, 0xef, 0x30, 0x9f, 0x0a, 0x4c, 0xe6, 0xc4, - 0xc7, 0x82, 0xe6, 0xdf, 0xa8, 0x3f, 0x38, 0xa6, 0xdc, 0xa5, 0x08, 0x77, 0x41, 0xab, 0x9e, 0x68, - 0xe9, 0x9e, 0x78, 0x01, 0x96, 0xdc, 0x28, 0xda, 0x75, 0xe9, 0x90, 0xc4, 0xd8, 0xe9, 0xbc, 0xd0, - 0x5b, 0xe1, 0x72, 0x7f, 0xf0, 0x9e, 0xfa, 0x2c, 0x8b, 0x07, 0x44, 0xc0, 0xdd, 0x74, 0x14, 0x0e, - 0xd7, 0xc3, 0x22, 0x12, 0x2b, 0x30, 0x22, 0xf2, 0x15, 0xae, 0xf4, 0x0a, 0x14, 0x5e, 0xe1, 0x7e, - 0xcc, 0x52, 0x72, 0x9d, 0x7a, 0x62, 0x50, 0x1d, 0xe9, 0xc7, 0x92, 0x65, 0xff, 0xc0, 0x80, 0xa5, - 0xfd, 0xec, 0x20, 0xf0, 0x07, 0x42, 0x05, 0x87, 0xb5, 0x04, 0xcf, 0xd0, 0xc0, 0x53, 0x21, 0x30, - 0x27, 0x43, 0xd0, 0xd0, 0x21, 0x58, 0x83, 0xd6, 0x90, 0x50, 0x8f, 0xc4, 0x12, 0x52, 0x49, 0x49, - 0x53, 0x9b, 0xb9, 0xa9, 0xf6, 0x4f, 0x4c, 0x58, 0xf8, 0x80, 0x4d, 0xd8, 0x80, 0x4e, 0x74, 0xc4, - 0x28, 0xd9, 0xcb, 0x78, 0x58, 0x49, 0x5b, 0x54, 0x96, 0x75, 0x11, 0x9a, 0x07, 0x7e, 0x9c, 0x1e, - 0x09, 0xbf, 0x76, 0x1d, 0x24, 0x38, 0x97, 0x84, 0xae, 0x8f, 0xce, 0x6c, 0x3b, 0x48, 0xc8, 0x01, - 0x2d, 0x14, 0xd8, 0xeb, 0x73, 0xac, 0x5d, 0x9b, 0x63, 0xf5, 0xd8, 0x80, 0x71, 0xb1, 0x61, 0xff, - 0xcb, 0x00, 0xb8, 0x11, 0xfb, 0x84, 0x7a, 0x02, 0x9a, 0xca, 0xe4, 0x36, 0xea, 0x93, 0x7b, 0x0d, - 0x5a, 0x31, 0x09, 0xdd, 0xf8, 0x38, 0x0f, 0x7e, 0xa4, 0x2a, 0x06, 0x35, 0x6a, 0x06, 0xbd, 0x0e, - 0x70, 0x28, 0xfa, 0xe1, 0x7a, 0x04, 0x54, 0x9d, 0x57, 0x3e, 0x7a, 0xa5, 0xb6, 0x0c, 0x5e, 0xc9, - 0xbd, 0xe4, 0x28, 0xcd, 0xf9, 0xcc, 0x72, 0x3d, 0x4f, 0x06, 0x70, 0x13, 0x67, 0x56, 0xc1, 0x18, - 0x13, 0xbf, 0xad, 0x53, 0xe2, 0x77, 0xbe, 0x08, 0x8a, 0x7f, 0x18, 0xd0, 0xde, 0x0a, 0xdc, 0xc1, - 0xf1, 0x94, 0x43, 0xd7, 0x87, 0x68, 0xd6, 0x86, 0x78, 0x13, 0xba, 0x07, 0x5c, 0x5d, 0x3e, 0x04, - 0x81, 0x42, 0xe7, 0x95, 0x8f, 0x8f, 0x19, 0xa5, 0x3e, 0x29, 0x1c, 0x5d, 0x4e, 0x1f, 0xee, 0xdc, - 0xd9, 0xc3, 0x6d, 0x9e, 0x32, 0xdc, 0x56, 0x31, 0xdc, 0x3f, 0x9b, 0xb0, 0x28, 0x16, 0x3a, 0x87, - 0x8c, 0x32, 0x92, 0xa4, 0xd6, 0x97, 0x61, 0x21, 0xcb, 0x4d, 0x35, 0xa6, 0x35, 0xb5, 0x10, 0xb1, - 0x5e, 0x93, 0xcb, 0xaa, 0x90, 0x37, 0x85, 0xfc, 0xa5, 0x31, 0xf2, 0x45, 0x4e, 0x73, 0xca, 0xe6, - 0x3c, 0x05, 0x1d, 0xb9, 0xd4, 0x0b, 0x88, 0x43, 0x92, 0x2c, 0x48, 0xe5, 0x6a, 0xa9, 0xf1, 0x30, - 0xd2, 0x46, 0xbb, 0xc9, 0x50, 0x26, 0x28, 0x49, 0x71, 0x74, 0xb0, 0x1d, 0xff, 0x84, 0x43, 0x2f, - 0x19, 0x7c, 0xa2, 0xc6, 0x64, 0x24, 0x3c, 0x84, 0xd3, 0x2a, 0x27, 0xcb, 0x3e, 0x25, 0x6a, 0x18, - 0x08, 0x1a, 0x8f, 0xbb, 0x18, 0x69, 0xa1, 0x00, 0x33, 0x93, 0xc2, 0xa9, 0x26, 0x26, 0xfb, 0xaf, - 0x0d, 0xe8, 0xe2, 0xf4, 0xc9, 0x41, 0xbd, 0xcc, 0xe3, 0x9c, 0x85, 0x5a, 0x14, 0x29, 0x1c, 0x6e, - 0x05, 0xa7, 0xf6, 0xf4, 0x85, 0x46, 0xe3, 0xf1, 0x50, 0xe4, 0xf4, 0x0d, 0x6d, 0xc1, 0x51, 0x59, - 0x79, 0x2f, 0x37, 0xd5, 0x85, 0x47, 0xe1, 0xf0, 0xa5, 0x2c, 0x65, 0x5a, 0x74, 0x14, 0x34, 0x97, - 0x4d, 0x59, 0xd1, 0x3f, 0xc6, 0x87, 0xc2, 0xe1, 0xf8, 0xa6, 0x2c, 0xef, 0x1b, 0x41, 0x2a, 0x19, - 0xa8, 0x59, 0xf6, 0x8b, 0xa9, 0xa4, 0xa0, 0x6b, 0x5e, 0x6d, 0x9f, 0xea, 0x55, 0xd0, 0xbc, 0xaa, - 0x4f, 0xae, 0x4e, 0x6d, 0x72, 0x6d, 0x42, 0x17, 0xf5, 0xe4, 0x41, 0xbf, 0x88, 0xa9, 0x5e, 0x63, - 0xea, 0xb1, 0xd1, 0xad, 0xc6, 0x86, 0xee, 0xdd, 0xa5, 0x09, 0xde, 0x5d, 0x2e, 0xbc, 0xfb, 0x6b, - 0x13, 0x60, 0x87, 0x44, 0x6e, 0x9c, 0x86, 0x84, 0xa6, 0x7c, 0x78, 0x5e, 0x41, 0x15, 0xce, 0xd5, - 0x78, 0x6a, 0x9e, 0x30, 0xf5, 0x3c, 0x61, 0xc1, 0x9c, 0x00, 0x1c, 0xbd, 0x29, 0x7e, 0x73, 0x30, - 0x23, 0x37, 0x46, 0x6d, 0x18, 0xe4, 0x05, 0xcd, 0xf3, 0x00, 0x8b, 0x3d, 0x99, 0x39, 0x9a, 0x0e, - 0x12, 0x7c, 0xf2, 0x97, 0xfd, 0x89, 0x82, 0xa6, 0x85, 0xeb, 0xba, 0xce, 0x3d, 0xb3, 0x06, 0x7b, - 0x09, 0x56, 0x92, 0xec, 0xa0, 0x1c, 0xdc, 0x5e, 0x16, 0xca, 0x70, 0xaf, 0xf1, 0x39, 0xa8, 0x58, - 0x9c, 0xf1, 0x46, 0x98, 0x6a, 0x4a, 0x46, 0xb5, 0x2a, 0xb0, 0xdf, 0x35, 0x61, 0xe5, 0x6e, 0x3c, - 0x74, 0xa9, 0xff, 0x6d, 0x51, 0x6e, 0x8a, 0x05, 0x7c, 0x96, 0x94, 0xbb, 0x01, 0x1d, 0x42, 0x87, - 0x81, 0x9f, 0x1c, 0xed, 0x95, 0xb8, 0xa9, 0x2c, 0x15, 0xec, 0xb9, 0x49, 0x49, 0xb9, 0xa9, 0x25, - 0xe5, 0x35, 0x68, 0x85, 0xec, 0xc0, 0x0f, 0xf2, 0xb8, 0x97, 0x94, 0x88, 0x79, 0x12, 0x10, 0x91, - 0x9d, 0x8b, 0x98, 0xcf, 0x19, 0x65, 0xa2, 0x5e, 0x18, 0x9b, 0xa8, 0xdb, 0x6a, 0xa2, 0xd6, 0x81, - 0x87, 0x1a, 0xf0, 0x08, 0x57, 0xa7, 0x80, 0xeb, 0x8f, 0x06, 0xac, 0x94, 0x70, 0x63, 0x0d, 0x3a, - 0x11, 0xae, 0x6a, 0x04, 0x9a, 0x63, 0x22, 0xb0, 0x88, 0x9b, 0x86, 0x1a, 0x37, 0x3c, 0xd2, 0x58, - 0xe2, 0x2b, 0xf5, 0x7e, 0x41, 0xf3, 0xde, 0x02, 0xe2, 0x2a, 0x60, 0x21, 0xa5, 0x54, 0xdd, 0x2d, - 0xad, 0xea, 0xae, 0xe6, 0xd1, 0xdf, 0x19, 0x70, 0x91, 0x7b, 0xb9, 0x36, 0x8c, 0xbb, 0xb0, 0xc2, - 0x2a, 0x91, 0x20, 0x13, 0xcd, 0x27, 0xc6, 0x24, 0x8a, 0x6a, 0xd0, 0x38, 0x35, 0x61, 0xae, 0xd0, - 0xab, 0x74, 0x22, 0x33, 0xcf, 0x38, 0x85, 0x55, 0x7b, 0x9c, 0x9a, 0xb0, 0xfd, 0x7b, 0x03, 0x56, - 0x30, 0xb5, 0x29, 0xf3, 0xfc, 0xdc, 0xcd, 0x7e, 0x0b, 0x2e, 0x56, 0x7b, 0xbe, 0xe3, 0x27, 0x69, - 0xcf, 0xdc, 0x68, 0x4c, 0x6b, 0xfa, 0x58, 0x05, 0xf6, 0x77, 0xa0, 0xb7, 0x9f, 0x05, 0xc1, 0x2e, - 0x49, 0x12, 0x77, 0x48, 0xb6, 0x1e, 0xf5, 0xc9, 0x88, 0xf3, 0x1d, 0x92, 0x44, 0x7c, 0x72, 0x90, - 0x38, 0xde, 0x66, 0x1e, 0x11, 0xc6, 0x37, 0x9d, 0x9c, 0xe4, 0x7e, 0x25, 0x71, 0xcc, 0x57, 0x48, - 0x59, 0xc2, 0x21, 0x65, 0x5d, 0x81, 0xb9, 0x80, 0x9b, 0xd5, 0x10, 0x66, 0xad, 0x8f, 0x31, 0x6b, - 0x37, 0x19, 0xee, 0xb8, 0xa9, 0xeb, 0x88, 0x76, 0x76, 0x08, 0xcf, 0x8d, 0xef, 0x7d, 0x34, 0x31, - 0x80, 0x79, 0x91, 0x25, 0xaa, 0x14, 0x9f, 0xd1, 0x22, 0x7e, 0x55, 0x16, 0x37, 0x3b, 0x41, 0x3d, - 0xc2, 0x8e, 0xae, 0x93, 0x93, 0xf6, 0x45, 0xb0, 0x6e, 0x92, 0x74, 0xd7, 0x7d, 0x78, 0x8d, 0x7a, - 0xbb, 0x3e, 0xed, 0x93, 0x91, 0x43, 0x46, 0xf6, 0x75, 0xb8, 0x50, 0xe3, 0x26, 0x91, 0x98, 0xe8, - 0xee, 0xc3, 0x3e, 0x19, 0x09, 0x03, 0xba, 0x8e, 0xa4, 0x04, 0x5f, 0xb4, 0x92, 0xf5, 0x9b, 0xa4, - 0xec, 0x11, 0x2c, 0x73, 0x57, 0xf5, 0x09, 0xf5, 0x76, 0x93, 0xa1, 0x50, 0xb1, 0x01, 0x1d, 0x44, - 0x60, 0x37, 0x19, 0x96, 0x05, 0xa1, 0xc2, 0xe2, 0x2d, 0x06, 0x81, 0xcf, 0x5d, 0x22, 0x5a, 0xc8, - 0xd1, 0x28, 0x2c, 0x3e, 0xed, 0x12, 0x22, 0xf7, 0x47, 0x7c, 0x3e, 0x36, 0x9c, 0x82, 0xb6, 0xff, - 0xd6, 0x84, 0x79, 0x09, 0xa8, 0x98, 0x6a, 0xbc, 0x06, 0x2f, 0xf0, 0x42, 0x0a, 0xb3, 0xe5, 0xe0, - 0xa4, 0xdc, 0x6a, 0x22, 0xa5, 0x6e, 0x4e, 0x1b, 0xfa, 0xe6, 0xb4, 0x62, 0xd3, 0x5c, 0xdd, 0xa6, - 0xca, 0xb8, 0x9a, 0xf5, 0x71, 0xf1, 0xe4, 0x20, 0xd6, 0xcb, 0xfd, 0xc0, 0x4d, 0x0f, 0x59, 0x1c, - 0xca, 0x92, 0xba, 0xe9, 0xd4, 0xf8, 0x3c, 0x21, 0x21, 0xaf, 0xa8, 0x28, 0x70, 0x61, 0xa8, 0x70, - 0x79, 0xfe, 0x46, 0x4e, 0x5e, 0x59, 0xe0, 0x5e, 0x46, 0x67, 0xa2, 0x6d, 0x49, 0xe2, 0x33, 0x2a, - 0x72, 0x1b, 0x16, 0x10, 0x2a, 0x8b, 0x8f, 0x3c, 0x4c, 0x86, 0x37, 0x62, 0x16, 0xca, 0x1d, 0x4d, - 0x4e, 0x8a, 0x91, 0x33, 0x9a, 0xe6, 0x79, 0xb1, 0x83, 0xb2, 0x0a, 0x8b, 0xcb, 0x4a, 0x52, 0x54, - 0x0f, 0x8b, 0x4e, 0x4e, 0x5a, 0x2b, 0xd0, 0x48, 0xc8, 0x48, 0x96, 0x04, 0xfc, 0xa7, 0xe6, 0xb9, - 0x65, 0xdd, 0x73, 0x95, 0x35, 0x7e, 0x45, 0x7c, 0x55, 0xd7, 0x78, 0x1b, 0x16, 0xdd, 0x14, 0x2b, - 0x12, 0x11, 0xc8, 0xab, 0x1b, 0x0d, 0xbe, 0x4c, 0xab, 0x3c, 0x65, 0x71, 0xb5, 0xb4, 0xc5, 0xf5, - 0x1a, 0xcc, 0xb3, 0x88, 0xcf, 0x85, 0xa4, 0x77, 0x41, 0xcc, 0xc3, 0x4f, 0x4e, 0x9e, 0x87, 0x57, - 0xee, 0x62, 0xcb, 0xeb, 0x34, 0x8d, 0x1f, 0x39, 0xb9, 0x9c, 0x75, 0x07, 0x96, 0xd9, 0xe1, 0x61, - 0xe0, 0x53, 0xb2, 0x9f, 0x25, 0x47, 0xa2, 0x3c, 0xbf, 0x28, 0x96, 0x2f, 0x7b, 0xdc, 0xf2, 0xa5, - 0xb7, 0x74, 0xaa, 0xa2, 0xeb, 0xaf, 0xc1, 0xa2, 0xda, 0x0d, 0x87, 0xea, 0x98, 0x3c, 0x92, 0x71, - 0xca, 0x7f, 0xf2, 0x8c, 0x73, 0xe2, 0x06, 0x19, 0x66, 0xf0, 0x05, 0x07, 0x89, 0xd7, 0xcc, 0x2f, - 0x18, 0xf6, 0x8f, 0x0d, 0x58, 0xae, 0x74, 0xc0, 0x5b, 0xa7, 0x7e, 0x1a, 0x10, 0xa9, 0x01, 0x09, - 0x5e, 0x1d, 0x79, 0x24, 0x19, 0xc8, 0x30, 0x17, 0xbf, 0x65, 0x9e, 0x69, 0x14, 0x7b, 0x5e, 0x1b, - 0x16, 0xfd, 0xbb, 0x7d, 0xae, 0xa8, 0xcf, 0x32, 0xea, 0x15, 0xe7, 0x56, 0x0a, 0x8f, 0x87, 0x99, - 0x7f, 0xb7, 0xbf, 0xe5, 0x7a, 0x43, 0x82, 0xa7, 0x4b, 0x4d, 0x61, 0x93, 0xce, 0xb4, 0x3d, 0x58, - 0xb8, 0xe7, 0x47, 0xc9, 0x36, 0x0b, 0x43, 0xee, 0x08, 0x8f, 0xa4, 0x3c, 0x8f, 0x1b, 0x22, 0x26, - 0x24, 0xc5, 0xc3, 0xc9, 0x23, 0x87, 0x6e, 0x16, 0xa4, 0xbc, 0x69, 0x3e, 0xb9, 0x15, 0x96, 0x38, - 0x57, 0x49, 0x18, 0xdd, 0x41, 0x69, 0xb4, 0x53, 0xe1, 0xd8, 0x7f, 0x32, 0x61, 0x45, 0xec, 0x7e, - 0xb6, 0x45, 0x68, 0x78, 0x42, 0xe8, 0x15, 0x68, 0x8a, 0xa9, 0x2a, 0x33, 0xca, 0xe9, 0x3b, 0x26, - 0x6c, 0x6a, 0x5d, 0x85, 0x16, 0x8b, 0x44, 0x1a, 0xc2, 0x64, 0xf7, 0xc2, 0x24, 0x21, 0xfd, 0x08, - 0xcb, 0x91, 0x52, 0xd6, 0x0d, 0x80, 0xb0, 0xcc, 0x3a, 0xb8, 0xbc, 0x4f, 0xab, 0x43, 0x91, 0xe4, - 0xe0, 0x16, 0x4b, 0x75, 0x71, 0x8e, 0xd5, 0x70, 0x74, 0xa6, 0xb5, 0x07, 0x4b, 0xc2, 0xec, 0xbb, - 0xf9, 0xd6, 0x59, 0xf8, 0x60, 0xfa, 0x1e, 0x2b, 0xd2, 0xf6, 0xcf, 0x0d, 0x09, 0x23, 0xff, 0xda, - 0x27, 0x88, 0x7d, 0x09, 0x89, 0x31, 0x13, 0x24, 0xeb, 0xb0, 0x10, 0x66, 0xca, 0x4e, 0xbe, 0xe1, - 0x14, 0x74, 0xe9, 0xa2, 0xc6, 0xd4, 0x2e, 0xb2, 0x7f, 0x61, 0x40, 0xef, 0x0d, 0xe6, 0x53, 0xf1, - 0xe1, 0x5a, 0x14, 0x05, 0xf2, 0xb0, 0x75, 0x66, 0x9f, 0x7f, 0x05, 0xda, 0x2e, 0xaa, 0xa1, 0xa9, - 0x74, 0xfb, 0x14, 0xbb, 0xf3, 0x52, 0x46, 0xd9, 0x68, 0x35, 0xd4, 0x8d, 0x96, 0xfd, 0x9e, 0x01, - 0x4b, 0x08, 0xca, 0x9b, 0x99, 0x9f, 0xce, 0x6c, 0xdf, 0x16, 0x2c, 0x8c, 0x32, 0x3f, 0x9d, 0x21, - 0x2a, 0x0b, 0xb9, 0x7a, 0x3c, 0x35, 0xc6, 0xc4, 0x93, 0xfd, 0xbe, 0x01, 0x97, 0xaa, 0xb0, 0x5e, - 0x1b, 0x0c, 0x48, 0xf4, 0x24, 0xa7, 0x94, 0xb6, 0xd1, 0x9c, 0xab, 0x6c, 0x34, 0xc7, 0x9a, 0xec, - 0x90, 0x77, 0xc8, 0xe0, 0xe9, 0x35, 0xf9, 0xfb, 0x26, 0x7c, 0xe4, 0x66, 0x31, 0xf1, 0xee, 0xc5, - 0x2e, 0x4d, 0x0e, 0x49, 0x1c, 0x3f, 0x41, 0x7b, 0xef, 0x40, 0x97, 0x92, 0x07, 0xa5, 0x4d, 0x72, - 0x3a, 0x4e, 0xab, 0x46, 0x17, 0x9e, 0x6e, 0xed, 0xb2, 0xff, 0x6d, 0xc0, 0x0a, 0xea, 0xf9, 0xaa, - 0x3f, 0x38, 0x7e, 0x82, 0x83, 0xdf, 0x83, 0xa5, 0x63, 0x61, 0x01, 0xa7, 0x66, 0x58, 0xb6, 0x2b, - 0xd2, 0x53, 0x0e, 0xff, 0x3f, 0x06, 0xac, 0xa2, 0xa2, 0xdb, 0xf4, 0xc4, 0x7f, 0x92, 0xc1, 0xba, - 0x0f, 0xcb, 0x3e, 0x9a, 0x30, 0x23, 0x00, 0x55, 0xf1, 0x29, 0x11, 0xf8, 0xad, 0x01, 0xcb, 0xa8, - 0xe9, 0x3a, 0x4d, 0x49, 0x3c, 0xf3, 0xf8, 0x6f, 0x41, 0x87, 0xd0, 0x34, 0x76, 0xe9, 0x2c, 0x2b, - 0xa4, 0x2a, 0x3a, 0xe5, 0x22, 0xf9, 0x9e, 0x01, 0x96, 0x50, 0xb5, 0xe3, 0x27, 0xa1, 0x9f, 0x24, - 0x4f, 0xd0, 0x75, 0xd3, 0x19, 0xfc, 0x53, 0x13, 0x2e, 0x2a, 0x5a, 0x76, 0xb3, 0xf4, 0x69, 0x37, - 0xd9, 0xda, 0x81, 0x36, 0xaf, 0x11, 0xd4, 0x1b, 0x8c, 0x69, 0x3b, 0x2a, 0x05, 0x79, 0x15, 0x2b, - 0x88, 0x3e, 0x19, 0x30, 0xea, 0x25, 0xa2, 0x38, 0xea, 0x3a, 0x1a, 0x8f, 0x2f, 0x43, 0xeb, 0x8a, - 0x9a, 0x6d, 0x97, 0x0e, 0x48, 0xf0, 0xcc, 0x40, 0x64, 0xff, 0xca, 0x80, 0x25, 0x6c, 0xf2, 0xf4, - 0x0f, 0x99, 0xe7, 0x7a, 0x0c, 0xe4, 0x0f, 0x8d, 0x97, 0x78, 0x78, 0xad, 0x29, 0x5a, 0xd4, 0xba, - 0xfa, 0xe9, 0x0d, 0xad, 0x5b, 0xd0, 0x19, 0x1c, 0xb9, 0x74, 0x38, 0x53, 0x70, 0xa9, 0xa2, 0x76, - 0x0a, 0xcf, 0xa9, 0x87, 0x76, 0xdb, 0xf8, 0x49, 0x0c, 0xff, 0xd5, 0xca, 0x50, 0x4e, 0xbd, 0xa1, - 0x7c, 0x3c, 0xd0, 0x8f, 0x61, 0x15, 0x6f, 0x8a, 0x94, 0x9a, 0xd0, 0xea, 0xc1, 0xbc, 0xeb, 0xe1, - 0x21, 0x83, 0x21, 0x84, 0x72, 0x52, 0xbf, 0x03, 0x94, 0xcf, 0x3c, 0xca, 0x3b, 0xc0, 0xcb, 0x00, - 0xae, 0xe7, 0xbd, 0xc5, 0x62, 0xcf, 0xa7, 0x79, 0x81, 0xaf, 0x70, 0xec, 0x37, 0x60, 0xf1, 0x46, - 0xcc, 0xc2, 0x7b, 0xca, 0x9d, 0xcf, 0xa9, 0xb7, 0x52, 0xea, 0x7d, 0x91, 0xa9, 0xdf, 0x17, 0xd9, - 0xdf, 0x82, 0xff, 0xaf, 0x19, 0x2e, 0xc0, 0xda, 0xc6, 0xab, 0xac, 0xbc, 0x13, 0x19, 0x32, 0x1f, - 0x1b, 0x03, 0x99, 0x6a, 0x8b, 0xa3, 0x09, 0xd9, 0xdf, 0x33, 0xe0, 0xf9, 0x9a, 0xfa, 0x6b, 0x51, - 0x14, 0xb3, 0x13, 0xe9, 0x93, 0xf3, 0xe8, 0x46, 0x2f, 0x7e, 0xcd, 0x6a, 0xf1, 0x3b, 0xd6, 0x08, - 0xad, 0x60, 0xff, 0x00, 0x8c, 0xf8, 0xa5, 0x01, 0xcb, 0xd2, 0x08, 0xcf, 0x93, 0xdd, 0x7e, 0x1e, - 0x5a, 0x78, 0x0d, 0x2e, 0x3b, 0x7c, 0x7e, 0x6c, 0x87, 0xf9, 0xf5, 0xbd, 0x23, 0x1b, 0xd7, 0x23, - 0xd2, 0x1c, 0x37, 0xa3, 0xbe, 0x58, 0x04, 0xfb, 0xd4, 0x17, 0xd5, 0x52, 0xc0, 0xfe, 0x7a, 0x1e, - 0xcc, 0x3b, 0x24, 0x20, 0xe7, 0x89, 0x91, 0x7d, 0x1f, 0x96, 0xc4, 0x9d, 0x7c, 0x89, 0xc1, 0xb9, - 0xa8, 0x7d, 0x0b, 0x56, 0x84, 0xda, 0x73, 0xb7, 0xb7, 0x98, 0x1d, 0x1c, 0x1f, 0x75, 0x29, 0x39, - 0x17, 0xed, 0x9f, 0x85, 0x0b, 0x39, 0xf6, 0xf7, 0x23, 0xaf, 0x38, 0x44, 0x9a, 0x70, 0xbc, 0x6e, - 0x7f, 0x0e, 0xd6, 0xb6, 0x19, 0x3d, 0x21, 0x71, 0x82, 0x97, 0x0f, 0x42, 0x24, 0x97, 0xd0, 0x26, - 0xbf, 0xa4, 0xec, 0x77, 0x60, 0x5d, 0x95, 0xe8, 0x93, 0x74, 0x3f, 0xf6, 0x4f, 0x14, 0x29, 0x79, - 0xfc, 0x6c, 0x68, 0xc7, 0xcf, 0xe5, 0x71, 0xb5, 0xa9, 0x1d, 0x57, 0x5f, 0x82, 0xb6, 0x9f, 0x48, - 0x05, 0x22, 0xa8, 0x16, 0x9c, 0x92, 0x61, 0xf7, 0x61, 0x55, 0xde, 0x92, 0xef, 0xbb, 0x43, 0x9f, - 0xe2, 0x0a, 0x78, 0x19, 0x20, 0x72, 0x87, 0xf9, 0x2b, 0x19, 0xbc, 0xa9, 0x50, 0x38, 0xfc, 0x7b, - 0x72, 0xc4, 0x1e, 0xc8, 0xef, 0x26, 0x7e, 0x2f, 0x39, 0xf6, 0xd7, 0xc0, 0x72, 0x48, 0x12, 0x31, - 0x9a, 0x10, 0x45, 0xeb, 0x06, 0x74, 0xb6, 0xb3, 0x38, 0x26, 0x94, 0x77, 0x95, 0x3f, 0x19, 0x51, - 0x59, 0x5c, 0x6f, 0xbf, 0xd4, 0x8b, 0xa7, 0xdb, 0x0a, 0xc7, 0xfe, 0x59, 0x03, 0xda, 0x7d, 0x7f, - 0x48, 0xdd, 0xc0, 0x21, 0x23, 0xeb, 0x4b, 0xd0, 0xc2, 0xfd, 0x84, 0x74, 0xe3, 0xb8, 0x93, 0x54, - 0x6c, 0x8d, 0x1b, 0x27, 0x87, 0x8c, 0x6e, 0xfd, 0x9f, 0x23, 0x65, 0xac, 0x37, 0xa1, 0x8b, 0xbf, - 0x6e, 0xe3, 0xf9, 0x90, 0x4c, 0x2e, 0x9f, 0x3a, 0x43, 0x89, 0x6c, 0x8d, 0xba, 0x74, 0x0d, 0xdc, - 0xa0, 0x81, 0xa8, 0x37, 0xe4, 0xdc, 0x9d, 0x6c, 0x10, 0x96, 0x25, 0xd2, 0x20, 0x94, 0xe1, 0xd2, - 0xae, 0x38, 0x41, 0x91, 0x69, 0x74, 0xb2, 0x34, 0x1e, 0xb4, 0x48, 0x69, 0x94, 0xe1, 0xd2, 0x47, - 0x19, 0x1d, 0xde, 0x8f, 0xe4, 0xc1, 0xde, 0x64, 0xe9, 0x5b, 0xa2, 0x99, 0x94, 0x46, 0x19, 0x2e, - 0x1d, 0x8b, 0x95, 0x55, 0x80, 0x7e, 0x9a, 0x34, 0x2e, 0xc0, 0x52, 0x1a, 0x65, 0xb6, 0xda, 0x30, - 0x1f, 0xb9, 0x8f, 0x02, 0xe6, 0x7a, 0xf6, 0xbb, 0x0d, 0x80, 0xbc, 0x61, 0x22, 0xaa, 0x10, 0xcd, - 0x45, 0x9b, 0x67, 0xba, 0x28, 0x0a, 0x1e, 0x29, 0x4e, 0xea, 0x8f, 0x77, 0xd2, 0xa7, 0xa7, 0x75, - 0x12, 0x6a, 0xab, 0xb8, 0xe9, 0x6a, 0xc5, 0x4d, 0x9b, 0x67, 0xba, 0x49, 0x1a, 0x25, 0x1d, 0x75, - 0xb5, 0xe2, 0xa8, 0xcd, 0x33, 0x1d, 0x25, 0xe5, 0xa5, 0xab, 0xae, 0x56, 0x5c, 0xb5, 0x79, 0xa6, - 0xab, 0xa4, 0xbc, 0x74, 0xd6, 0xd5, 0x8a, 0xb3, 0x36, 0xcf, 0x74, 0x96, 0x94, 0xaf, 0xbb, 0xeb, - 0x7d, 0x13, 0x96, 0x04, 0x64, 0x78, 0xd3, 0x47, 0x0f, 0x99, 0x38, 0xac, 0x17, 0x70, 0xe9, 0x8f, - 0xae, 0x74, 0xa6, 0xf5, 0x19, 0x58, 0x45, 0x06, 0x51, 0xae, 0x54, 0x4c, 0x71, 0xa5, 0x52, 0xff, - 0x20, 0xee, 0x66, 0xb2, 0x24, 0x65, 0xe1, 0x8e, 0x9b, 0xba, 0x79, 0x65, 0x54, 0x72, 0xd4, 0x9b, - 0xb3, 0xb9, 0xda, 0xb3, 0xce, 0x98, 0xb1, 0xb0, 0xb8, 0x12, 0x93, 0x14, 0x97, 0x48, 0xfd, 0x90, - 0xb0, 0x2c, 0x95, 0xcb, 0x44, 0x4e, 0xe2, 0xc3, 0x08, 0xcf, 0x77, 0xc5, 0x7d, 0x93, 0x7c, 0x35, - 0x50, 0x30, 0xc4, 0xca, 0x56, 0xde, 0x9f, 0xc9, 0x67, 0x97, 0x25, 0xe7, 0xec, 0xbb, 0x2e, 0xfb, - 0xef, 0x06, 0x5c, 0xd8, 0x77, 0xe3, 0xd4, 0x1f, 0xf8, 0x91, 0x4b, 0xd3, 0x5d, 0x92, 0xba, 0x62, - 0x0c, 0xda, 0xcb, 0x2b, 0xe3, 0xf1, 0x5e, 0x5e, 0xed, 0xc3, 0xf2, 0x50, 0x2f, 0xfd, 0x1f, 0xb3, - 0x6a, 0xaf, 0x8a, 0x6b, 0xcf, 0xc8, 0x1a, 0x8f, 0xfd, 0x8c, 0xcc, 0xfe, 0xa1, 0x09, 0xcb, 0x95, - 0xa5, 0x93, 0x97, 0xa3, 0x58, 0x68, 0x14, 0x31, 0x51, 0xd0, 0xd6, 0x35, 0x00, 0xbf, 0x08, 0xa3, - 0x53, 0x4e, 0xc6, 0xf5, 0x58, 0x73, 0x14, 0xa1, 0x71, 0x17, 0x64, 0x8d, 0x99, 0x2f, 0xc8, 0xf8, - 0xc6, 0x24, 0x2a, 0x9d, 0x74, 0xca, 0xc6, 0x64, 0x8c, 0x2b, 0x1d, 0x55, 0xd4, 0xfe, 0x26, 0xac, - 0xd6, 0x56, 0x28, 0x71, 0x5f, 0xc6, 0x8e, 0x09, 0x2d, 0xee, 0xcb, 0x38, 0xa1, 0x04, 0xab, 0x59, - 0x0d, 0xd6, 0xc0, 0x3f, 0x51, 0xdf, 0xa9, 0x4a, 0xd2, 0xfe, 0x91, 0x09, 0x6b, 0xe3, 0xb3, 0xcb, - 0xb3, 0x0a, 0xf7, 0x01, 0xf4, 0x26, 0xad, 0xe4, 0xe7, 0x86, 0x7a, 0x19, 0xdd, 0x45, 0x1e, 0x7e, - 0x56, 0xe1, 0xbe, 0x90, 0x47, 0xb7, 0x92, 0xea, 0xec, 0xdf, 0x14, 0xf8, 0x14, 0x95, 0xc6, 0x33, - 0x8a, 0x8f, 0xf5, 0x12, 0xac, 0xe0, 0x30, 0x95, 0x57, 0x17, 0x58, 0xb8, 0xd6, 0xf8, 0xe5, 0x4a, - 0xa1, 0xa4, 0xfd, 0x73, 0x8b, 0xd9, 0x3f, 0x18, 0xb9, 0x4f, 0x8a, 0xfa, 0xed, 0x43, 0xe5, 0x93, - 0x32, 0xd2, 0x94, 0xa2, 0x46, 0x89, 0xb4, 0xa2, 0xae, 0xfc, 0x5f, 0xa4, 0x9d, 0x1d, 0x69, 0x05, - 0x96, 0x4a, 0x81, 0x67, 0x7f, 0x17, 0xba, 0x3b, 0x24, 0xd8, 0x4d, 0x86, 0xf9, 0x7b, 0xaf, 0xd3, - 0x80, 0x9c, 0xf4, 0x77, 0x99, 0x89, 0x2f, 0xbd, 0xaa, 0xaf, 0xc4, 0xe6, 0x6a, 0xaf, 0xc4, 0xec, - 0x2d, 0x58, 0x52, 0x0d, 0x98, 0xe5, 0xb9, 0xdb, 0xd6, 0xa5, 0x6f, 0xac, 0x5f, 0x79, 0x19, 0xff, - 0x98, 0xf5, 0x7a, 0x0d, 0xc4, 0x83, 0x96, 0xf8, 0xa3, 0xd6, 0xab, 0xff, 0x0d, 0x00, 0x00, 0xff, - 0xff, 0x6d, 0x01, 0x85, 0x88, 0xbb, 0x35, 0x00, 0x00, +var fileDescriptor_ws_0aa1613bcc1a3980 = []byte{ + // 3033 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x6f, 0x24, 0x47, + 0xf5, 0xff, 0x76, 0x8f, 0x67, 0xec, 0x79, 0xe3, 0xf1, 0x8f, 0xde, 0xfd, 0x3a, 0x83, 0xd9, 0x2c, + 0xa6, 0xb1, 0x42, 0x08, 0xb0, 0x41, 0x89, 0x90, 0x20, 0x81, 0x45, 0x6b, 0x7b, 0x7f, 0x85, 0xb5, + 0xd7, 0xe9, 0xd9, 0x25, 0x08, 0x90, 0xa2, 0xf6, 0x74, 0x79, 0xdc, 0x71, 0x77, 0x55, 0x4f, 0xff, + 0xf0, 0xee, 0x22, 0x24, 0x24, 0x90, 0x10, 0x37, 0x4e, 0x70, 0xe0, 0x82, 0xc4, 0x05, 0x81, 0xa2, + 0x28, 0x42, 0x20, 0x71, 0x88, 0x10, 0x07, 0xfe, 0x01, 0x8e, 0x88, 0x1b, 0x67, 0xae, 0x1c, 0x90, + 0x90, 0x40, 0x55, 0xaf, 0xba, 0xbb, 0xaa, 0x7b, 0xc6, 0x9e, 0x1d, 0x59, 0xd9, 0x8d, 0x96, 0xdb, + 0xbc, 0xd7, 0xf5, 0x5e, 0xbd, 0xfa, 0xbc, 0x57, 0xf5, 0x5e, 0xfd, 0x18, 0x58, 0x4e, 0xbc, 0xe3, + 0xb7, 0x1f, 0x24, 0x2f, 0x3f, 0x48, 0xae, 0x44, 0x31, 0x4b, 0x99, 0xb5, 0x9a, 0x90, 0xf8, 0x84, + 0xc4, 0x6f, 0xbb, 0x91, 0xff, 0x76, 0xe4, 0xc6, 0x6e, 0x98, 0xd8, 0xff, 0x34, 0xa1, 0x7d, 0x33, + 0x66, 0x59, 0x74, 0x9b, 0x1e, 0x32, 0xab, 0x07, 0xf3, 0x43, 0x41, 0xec, 0xf4, 0x8c, 0x0d, 0xe3, + 0xc5, 0xb6, 0x93, 0x93, 0xd6, 0x25, 0x68, 0x8b, 0x9f, 0x7b, 0x6e, 0x48, 0x7a, 0xa6, 0xf8, 0x56, + 0x32, 0x2c, 0x1b, 0x16, 0x29, 0x4b, 0xfd, 0x43, 0x7f, 0xe0, 0xa6, 0x3e, 0xa3, 0xbd, 0x86, 0x68, + 0xa0, 0xf1, 0x78, 0x1b, 0x9f, 0xa6, 0x31, 0xf3, 0xb2, 0x81, 0x68, 0x33, 0x87, 0x6d, 0x54, 0x1e, + 0xef, 0xff, 0xd0, 0x1d, 0x90, 0xfb, 0xce, 0x9d, 0x5e, 0x13, 0xfb, 0x97, 0xa4, 0xb5, 0x01, 0x1d, + 0xf6, 0x80, 0x92, 0xf8, 0x7e, 0x42, 0xe2, 0xdb, 0x3b, 0xbd, 0x96, 0xf8, 0xaa, 0xb2, 0xac, 0xcb, + 0x00, 0x83, 0x98, 0xb8, 0x29, 0xb9, 0xe7, 0x87, 0xa4, 0x37, 0xbf, 0x61, 0xbc, 0xd8, 0x75, 0x14, + 0x0e, 0xd7, 0x10, 0x92, 0xf0, 0x80, 0xc4, 0xdb, 0x2c, 0xa3, 0x69, 0x6f, 0x41, 0x34, 0x50, 0x59, + 0xd6, 0x12, 0x98, 0xe4, 0x61, 0xaf, 0x2d, 0x54, 0x9b, 0xe4, 0xa1, 0xb5, 0x06, 0xad, 0x24, 0x75, + 0xd3, 0x2c, 0xe9, 0xc1, 0x86, 0xf1, 0x62, 0xd3, 0x91, 0x94, 0xb5, 0x09, 0x5d, 0xa1, 0x97, 0xe5, + 0xd6, 0x74, 0x84, 0x88, 0xce, 0x2c, 0x10, 0xbb, 0xf7, 0x28, 0x22, 0xbd, 0x45, 0xa1, 0xa0, 0x64, + 0xd8, 0x7f, 0x35, 0xe1, 0x82, 0xc0, 0x7d, 0x57, 0x18, 0x70, 0x23, 0x0b, 0x82, 0x33, 0x3c, 0xb0, + 0x06, 0xad, 0x0c, 0xbb, 0x43, 0xf8, 0x25, 0xc5, 0xfb, 0x89, 0x59, 0x40, 0xee, 0x90, 0x13, 0x12, + 0x08, 0xe0, 0x9b, 0x4e, 0xc9, 0xb0, 0xd6, 0x61, 0xe1, 0x1d, 0xe6, 0x53, 0x81, 0xc9, 0x9c, 0xf8, + 0x58, 0xd0, 0xfc, 0x1b, 0xf5, 0x07, 0xc7, 0x94, 0xbb, 0x14, 0xe1, 0x2e, 0x68, 0xd5, 0x13, 0x2d, + 0xdd, 0x13, 0x2f, 0xc0, 0x92, 0x1b, 0x45, 0xbb, 0x2e, 0x1d, 0x92, 0x18, 0x3b, 0x9d, 0x17, 0x7a, + 0x2b, 0x5c, 0xee, 0x0f, 0xde, 0x53, 0x9f, 0x65, 0xf1, 0x80, 0x08, 0xb8, 0x9b, 0x8e, 0xc2, 0xe1, + 0x7a, 0x58, 0x44, 0x62, 0x05, 0x46, 0x44, 0xbe, 0xc2, 0x95, 0x5e, 0x81, 0xc2, 0x2b, 0xdc, 0x8f, + 0x59, 0x4a, 0xae, 0x53, 0x4f, 0x0c, 0xaa, 0x23, 0xfd, 0x58, 0xb2, 0xec, 0x1f, 0x19, 0xb0, 0xb4, + 0x9f, 0x1d, 0x04, 0xfe, 0x40, 0xa8, 0xe0, 0xb0, 0x96, 0xe0, 0x19, 0x1a, 0x78, 0x2a, 0x04, 0xe6, + 0x64, 0x08, 0x1a, 0x3a, 0x04, 0x6b, 0xd0, 0x1a, 0x12, 0xea, 0x91, 0x58, 0x42, 0x2a, 0x29, 0x69, + 0x6a, 0x33, 0x37, 0xd5, 0xfe, 0x99, 0x09, 0x0b, 0x1f, 0xb2, 0x09, 0x1b, 0xd0, 0x89, 0x8e, 0x18, + 0x25, 0x7b, 0x19, 0x0f, 0x2b, 0x69, 0x8b, 0xca, 0xb2, 0x2e, 0x42, 0xf3, 0xc0, 0x8f, 0xd3, 0x23, + 0xe1, 0xd7, 0xae, 0x83, 0x04, 0xe7, 0x92, 0xd0, 0xf5, 0xd1, 0x99, 0x6d, 0x07, 0x09, 0x39, 0xa0, + 0x85, 0x02, 0x7b, 0x7d, 0x8e, 0xb5, 0x6b, 0x73, 0xac, 0x1e, 0x1b, 0x30, 0x2e, 0x36, 0xec, 0x7f, + 0x19, 0x00, 0x37, 0x62, 0x9f, 0x50, 0x4f, 0x40, 0x53, 0x99, 0xdc, 0x46, 0x7d, 0x72, 0xaf, 0x41, + 0x2b, 0x26, 0xa1, 0x1b, 0x1f, 0xe7, 0xc1, 0x8f, 0x54, 0xc5, 0xa0, 0x46, 0xcd, 0xa0, 0xd7, 0x01, + 0x0e, 0x45, 0x3f, 0x5c, 0x8f, 0x80, 0xaa, 0xf3, 0xca, 0xc7, 0xaf, 0xd4, 0x96, 0xc1, 0x2b, 0xb9, + 0x97, 0x1c, 0xa5, 0x39, 0x9f, 0x59, 0xae, 0xe7, 0xc9, 0x00, 0x6e, 0xe2, 0xcc, 0x2a, 0x18, 0x63, + 0xe2, 0xb7, 0x75, 0x4a, 0xfc, 0xce, 0x17, 0x41, 0xf1, 0x0f, 0x03, 0xda, 0x5b, 0x81, 0x3b, 0x38, + 0x9e, 0x72, 0xe8, 0xfa, 0x10, 0xcd, 0xda, 0x10, 0x6f, 0x42, 0xf7, 0x80, 0xab, 0xcb, 0x87, 0x20, + 0x50, 0xe8, 0xbc, 0xf2, 0xc9, 0x31, 0xa3, 0xd4, 0x27, 0x85, 0xa3, 0xcb, 0xe9, 0xc3, 0x9d, 0x3b, + 0x7b, 0xb8, 0xcd, 0x53, 0x86, 0xdb, 0x2a, 0x86, 0xfb, 0x17, 0x13, 0x16, 0xc5, 0x42, 0xe7, 0x90, + 0x51, 0x46, 0x92, 0xd4, 0xfa, 0x2a, 0x2c, 0x64, 0xb9, 0xa9, 0xc6, 0xb4, 0xa6, 0x16, 0x22, 0xd6, + 0x6b, 0x72, 0x59, 0x15, 0xf2, 0xa6, 0x90, 0xbf, 0x34, 0x46, 0xbe, 0xc8, 0x69, 0x4e, 0xd9, 0x9c, + 0xa7, 0xa0, 0x23, 0x97, 0x7a, 0x01, 0x71, 0x48, 0x92, 0x05, 0xa9, 0x5c, 0x2d, 0x35, 0x1e, 0x46, + 0xda, 0x68, 0x37, 0x19, 0xca, 0x04, 0x25, 0x29, 0x8e, 0x0e, 0xb6, 0xe3, 0x9f, 0x70, 0xe8, 0x25, + 0x83, 0x4f, 0xd4, 0x98, 0x8c, 0x84, 0x87, 0x70, 0x5a, 0xe5, 0x64, 0xd9, 0xa7, 0x44, 0x0d, 0x03, + 0x41, 0xe3, 0x71, 0x17, 0x23, 0x2d, 0x14, 0x60, 0x66, 0x52, 0x38, 0xd5, 0xc4, 0x64, 0xff, 0xad, + 0x01, 0x5d, 0x9c, 0x3e, 0x39, 0xa8, 0x97, 0x79, 0x9c, 0xb3, 0x50, 0x8b, 0x22, 0x85, 0xc3, 0xad, + 0xe0, 0xd4, 0x9e, 0xbe, 0xd0, 0x68, 0x3c, 0x1e, 0x8a, 0x9c, 0xbe, 0xa1, 0x2d, 0x38, 0x2a, 0x2b, + 0xef, 0xe5, 0xa6, 0xba, 0xf0, 0x28, 0x1c, 0xbe, 0x94, 0xa5, 0x4c, 0x8b, 0x8e, 0x82, 0xe6, 0xb2, + 0x29, 0x2b, 0xfa, 0xc7, 0xf8, 0x50, 0x38, 0x1c, 0xdf, 0x94, 0xe5, 0x7d, 0x23, 0x48, 0x25, 0x03, + 0x35, 0xcb, 0x7e, 0x31, 0x95, 0x14, 0x74, 0xcd, 0xab, 0xed, 0x53, 0xbd, 0x0a, 0x9a, 0x57, 0xf5, + 0xc9, 0xd5, 0xa9, 0x4d, 0xae, 0x4d, 0xe8, 0xa2, 0x9e, 0x3c, 0xe8, 0x17, 0x31, 0xd5, 0x6b, 0x4c, + 0x3d, 0x36, 0xba, 0xd5, 0xd8, 0xd0, 0xbd, 0xbb, 0x34, 0xc1, 0xbb, 0xcb, 0x85, 0x77, 0x7f, 0x6b, + 0x02, 0xec, 0x90, 0xc8, 0x8d, 0xd3, 0x90, 0xd0, 0x94, 0x0f, 0xcf, 0x2b, 0xa8, 0xc2, 0xb9, 0x1a, + 0x4f, 0xcd, 0x13, 0xa6, 0x9e, 0x27, 0x2c, 0x98, 0x13, 0x80, 0xa3, 0x37, 0xc5, 0x6f, 0x0e, 0x66, + 0xe4, 0xc6, 0xa8, 0x0d, 0x83, 0xbc, 0xa0, 0x79, 0x1e, 0x60, 0xb1, 0x27, 0x33, 0x47, 0xd3, 0x41, + 0x82, 0x4f, 0xfe, 0xb2, 0x3f, 0x51, 0xd0, 0xb4, 0x70, 0x5d, 0xd7, 0xb9, 0x67, 0xd6, 0x60, 0x2f, + 0xc1, 0x4a, 0x92, 0x1d, 0x94, 0x83, 0xdb, 0xcb, 0x42, 0x19, 0xee, 0x35, 0x3e, 0x07, 0x15, 0x8b, + 0x33, 0xde, 0x08, 0x53, 0x4d, 0xc9, 0xa8, 0x56, 0x05, 0xf6, 0xbb, 0x26, 0xac, 0xdc, 0x8d, 0x87, + 0x2e, 0xf5, 0xbf, 0x2b, 0xca, 0x4d, 0xb1, 0x80, 0xcf, 0x92, 0x72, 0x37, 0xa0, 0x43, 0xe8, 0x30, + 0xf0, 0x93, 0xa3, 0xbd, 0x12, 0x37, 0x95, 0xa5, 0x82, 0x3d, 0x37, 0x29, 0x29, 0x37, 0xb5, 0xa4, + 0xbc, 0x06, 0xad, 0x90, 0x1d, 0xf8, 0x41, 0x1e, 0xf7, 0x92, 0x12, 0x31, 0x4f, 0x02, 0x22, 0xb2, + 0x73, 0x11, 0xf3, 0x39, 0xa3, 0x4c, 0xd4, 0x0b, 0x63, 0x13, 0x75, 0x5b, 0x4d, 0xd4, 0x3a, 0xf0, + 0x50, 0x03, 0x1e, 0xe1, 0xea, 0x14, 0x70, 0xfd, 0xc9, 0x80, 0x95, 0x12, 0x6e, 0xac, 0x41, 0x27, + 0xc2, 0x55, 0x8d, 0x40, 0x73, 0x4c, 0x04, 0x16, 0x71, 0xd3, 0x50, 0xe3, 0x86, 0x47, 0x1a, 0x4b, + 0x7c, 0xa5, 0xde, 0x2f, 0x68, 0xde, 0x5b, 0x40, 0x5c, 0x05, 0x2c, 0xa4, 0x94, 0xaa, 0xbb, 0xa5, + 0x55, 0xdd, 0xd5, 0x3c, 0xfa, 0x07, 0x03, 0x2e, 0x72, 0x2f, 0xd7, 0x86, 0x71, 0x17, 0x56, 0x58, + 0x25, 0x12, 0x64, 0xa2, 0xf9, 0xd4, 0x98, 0x44, 0x51, 0x0d, 0x1a, 0xa7, 0x26, 0xcc, 0x15, 0x7a, + 0x95, 0x4e, 0x64, 0xe6, 0x19, 0xa7, 0xb0, 0x6a, 0x8f, 0x53, 0x13, 0xb6, 0x3f, 0x30, 0x60, 0x05, + 0x53, 0x9b, 0x32, 0xcf, 0xcf, 0xdd, 0xec, 0xb7, 0xe0, 0x62, 0xb5, 0xe7, 0x3b, 0x7e, 0x92, 0xf6, + 0xcc, 0x8d, 0xc6, 0xb4, 0xa6, 0x8f, 0x55, 0x60, 0x7f, 0x0f, 0x7a, 0xfb, 0x59, 0x10, 0xec, 0x92, + 0x24, 0x71, 0x87, 0x64, 0xeb, 0x51, 0x9f, 0x8c, 0x38, 0xdf, 0x21, 0x49, 0xc4, 0x27, 0x07, 0x89, + 0xe3, 0x6d, 0xe6, 0x11, 0x61, 0x7c, 0xd3, 0xc9, 0x49, 0xee, 0x57, 0x12, 0xc7, 0x7c, 0x85, 0x94, + 0x25, 0x1c, 0x52, 0xd6, 0x15, 0x98, 0x0b, 0xb8, 0x59, 0x0d, 0x61, 0xd6, 0xfa, 0x18, 0xb3, 0x76, + 0x93, 0xe1, 0x8e, 0x9b, 0xba, 0x8e, 0x68, 0x67, 0x87, 0xf0, 0xdc, 0xf8, 0xde, 0x47, 0x13, 0x03, + 0x98, 0x17, 0x59, 0xa2, 0x4a, 0xf1, 0x19, 0x2d, 0xe2, 0x57, 0x65, 0x71, 0xb3, 0x13, 0xd4, 0x23, + 0xec, 0xe8, 0x3a, 0x39, 0x69, 0x5f, 0x04, 0xeb, 0x26, 0x49, 0x77, 0xdd, 0x87, 0xd7, 0xa8, 0xb7, + 0xeb, 0xd3, 0x3e, 0x19, 0x39, 0x64, 0x64, 0x5f, 0x87, 0x0b, 0x35, 0x6e, 0x12, 0x89, 0x89, 0xee, + 0x3e, 0xec, 0x93, 0x91, 0x30, 0xa0, 0xeb, 0x48, 0x4a, 0xf0, 0x45, 0x2b, 0x59, 0xbf, 0x49, 0xca, + 0x1e, 0xc1, 0x32, 0x77, 0x55, 0x9f, 0x50, 0x6f, 0x37, 0x19, 0x0a, 0x15, 0x1b, 0xd0, 0x41, 0x04, + 0x76, 0x93, 0x61, 0x59, 0x10, 0x2a, 0x2c, 0xde, 0x62, 0x10, 0xf8, 0xdc, 0x25, 0xa2, 0x85, 0x1c, + 0x8d, 0xc2, 0xe2, 0xd3, 0x2e, 0x21, 0x72, 0x7f, 0xc4, 0xe7, 0x63, 0xc3, 0x29, 0x68, 0xfb, 0x83, + 0x26, 0xcc, 0x4b, 0x40, 0xc5, 0x54, 0xe3, 0x35, 0x78, 0x81, 0x17, 0x52, 0x98, 0x2d, 0x07, 0x27, + 0xe5, 0x56, 0x13, 0x29, 0x75, 0x73, 0xda, 0xd0, 0x37, 0xa7, 0x15, 0x9b, 0xe6, 0xea, 0x36, 0x55, + 0xc6, 0xd5, 0xac, 0x8f, 0x8b, 0x27, 0x07, 0xb1, 0x5e, 0xee, 0x07, 0x6e, 0x7a, 0xc8, 0xe2, 0x50, + 0x96, 0xd4, 0x4d, 0xa7, 0xc6, 0xe7, 0x09, 0x09, 0x79, 0x45, 0x45, 0x81, 0x0b, 0x43, 0x85, 0xcb, + 0xf3, 0x37, 0x72, 0xf2, 0xca, 0x02, 0xf7, 0x32, 0x3a, 0x13, 0x6d, 0x4b, 0x12, 0x9f, 0x51, 0x91, + 0xdb, 0xb0, 0x80, 0x50, 0x59, 0x7c, 0xe4, 0x61, 0x32, 0xbc, 0x11, 0xb3, 0x50, 0xee, 0x68, 0x72, + 0x52, 0x8c, 0x9c, 0xd1, 0x34, 0xcf, 0x8b, 0x1d, 0x94, 0x55, 0x58, 0x5c, 0x56, 0x92, 0xa2, 0x7a, + 0x58, 0x74, 0x72, 0xd2, 0x5a, 0x81, 0x46, 0x42, 0x46, 0xb2, 0x24, 0xe0, 0x3f, 0x35, 0xcf, 0x2d, + 0xeb, 0x9e, 0xab, 0xac, 0xf1, 0x2b, 0xe2, 0xab, 0xba, 0xc6, 0x97, 0x0b, 0xe7, 0xaa, 0xb6, 0x70, + 0x5e, 0x83, 0x79, 0x16, 0xf1, 0x38, 0x4f, 0x7a, 0x96, 0x98, 0x63, 0x9f, 0x9e, 0x3c, 0xc7, 0xae, + 0xdc, 0xc5, 0x96, 0xd7, 0x69, 0x1a, 0x3f, 0x72, 0x72, 0x39, 0xeb, 0x0e, 0x2c, 0xb3, 0xc3, 0xc3, + 0xc0, 0xa7, 0x64, 0x3f, 0x4b, 0x8e, 0x44, 0xe9, 0x7d, 0x41, 0x2c, 0x4d, 0xf6, 0xb8, 0xa5, 0x49, + 0x6f, 0xe9, 0x54, 0x45, 0xd7, 0x5f, 0x83, 0x45, 0xb5, 0x1b, 0x0e, 0xc3, 0x31, 0x79, 0x24, 0x63, + 0x90, 0xff, 0xe4, 0xd9, 0xe4, 0xc4, 0x0d, 0x32, 0xcc, 0xce, 0x0b, 0x0e, 0x12, 0xaf, 0x99, 0x5f, + 0x32, 0xec, 0x9f, 0x1a, 0xb0, 0x5c, 0xe9, 0x80, 0xb7, 0x4e, 0xfd, 0x34, 0x20, 0x52, 0x03, 0x12, + 0xbc, 0xf2, 0xf1, 0x48, 0x32, 0x90, 0x21, 0x2c, 0x7e, 0xcb, 0x1c, 0xd2, 0x28, 0xf6, 0xb3, 0x36, + 0x2c, 0xfa, 0x77, 0xfb, 0x5c, 0x51, 0x9f, 0x65, 0xd4, 0x2b, 0xce, 0xa4, 0x14, 0x1e, 0x0f, 0x21, + 0xff, 0x6e, 0x7f, 0xcb, 0xf5, 0x86, 0x04, 0x4f, 0x8e, 0x9a, 0xc2, 0x26, 0x9d, 0x69, 0x7b, 0xb0, + 0x70, 0xcf, 0x8f, 0x92, 0x6d, 0x16, 0x86, 0xdc, 0x11, 0x1e, 0x49, 0x79, 0x8e, 0x36, 0x84, 0xbf, + 0x25, 0xc5, 0x43, 0xc5, 0x23, 0x87, 0x6e, 0x16, 0xa4, 0xbc, 0x69, 0x3e, 0x71, 0x15, 0x96, 0x38, + 0x33, 0x49, 0x18, 0xdd, 0x41, 0x69, 0xb4, 0x53, 0xe1, 0xd8, 0x7f, 0x36, 0x61, 0x45, 0xec, 0x6c, + 0xb6, 0x85, 0xdb, 0x3d, 0x21, 0xf4, 0x0a, 0x34, 0xc5, 0x34, 0x94, 0xd9, 0xe2, 0xf4, 0xdd, 0x10, + 0x36, 0xb5, 0xae, 0x42, 0x8b, 0x45, 0x22, 0xc5, 0x60, 0x22, 0x7b, 0x61, 0x92, 0x90, 0x7e, 0x3c, + 0xe5, 0x48, 0x29, 0xeb, 0x06, 0x40, 0x58, 0x66, 0x14, 0x5c, 0xba, 0xa7, 0xd5, 0xa1, 0x48, 0x72, + 0x70, 0x8b, 0x65, 0xb8, 0x38, 0xa3, 0x6a, 0x38, 0x3a, 0xd3, 0xda, 0x83, 0x25, 0x61, 0xf6, 0xdd, + 0x7c, 0x5b, 0x2c, 0x7c, 0x30, 0x7d, 0x8f, 0x15, 0x69, 0xfb, 0x97, 0x86, 0x84, 0x91, 0x7f, 0xed, + 0x13, 0xc4, 0xbe, 0x84, 0xc4, 0x98, 0x09, 0x92, 0x75, 0x58, 0x08, 0x33, 0x65, 0x97, 0xde, 0x70, + 0x0a, 0xba, 0x74, 0x51, 0x63, 0x6a, 0x17, 0xd9, 0xbf, 0x32, 0xa0, 0xf7, 0x06, 0xf3, 0xa9, 0xf8, + 0x70, 0x2d, 0x8a, 0x02, 0x79, 0x90, 0x3a, 0xb3, 0xcf, 0xbf, 0x06, 0x6d, 0x17, 0xd5, 0xd0, 0x54, + 0xba, 0x7d, 0x8a, 0x9d, 0x77, 0x29, 0xa3, 0x6c, 0xa2, 0x1a, 0xea, 0x26, 0xca, 0x7e, 0xcf, 0x80, + 0x25, 0x04, 0xe5, 0xcd, 0xcc, 0x4f, 0x67, 0xb6, 0x6f, 0x0b, 0x16, 0x46, 0x99, 0x9f, 0xce, 0x10, + 0x95, 0x85, 0x5c, 0x3d, 0x9e, 0x1a, 0x63, 0xe2, 0xc9, 0x7e, 0xdf, 0x80, 0x4b, 0x55, 0x58, 0xaf, + 0x0d, 0x06, 0x24, 0x7a, 0x92, 0x53, 0x4a, 0xdb, 0x44, 0xce, 0x55, 0x36, 0x91, 0x63, 0x4d, 0x76, + 0xc8, 0x3b, 0x64, 0xf0, 0xf4, 0x9a, 0xfc, 0x43, 0x13, 0x3e, 0x76, 0xb3, 0x98, 0x78, 0xf7, 0x62, + 0x97, 0x26, 0x87, 0x24, 0x8e, 0x9f, 0xa0, 0xbd, 0x77, 0xa0, 0x4b, 0xc9, 0x83, 0xd2, 0x26, 0x39, + 0x1d, 0xa7, 0x55, 0xa3, 0x0b, 0x4f, 0xb7, 0x76, 0xd9, 0xff, 0x36, 0x60, 0x05, 0xf5, 0x7c, 0xdd, + 0x1f, 0x1c, 0x3f, 0xc1, 0xc1, 0xef, 0xc1, 0xd2, 0xb1, 0xb0, 0x80, 0x53, 0x33, 0x2c, 0xdb, 0x15, + 0xe9, 0x29, 0x87, 0xff, 0x1f, 0x03, 0x56, 0x51, 0xd1, 0x6d, 0x7a, 0xe2, 0x3f, 0xc9, 0x60, 0xdd, + 0x87, 0x65, 0x1f, 0x4d, 0x98, 0x11, 0x80, 0xaa, 0xf8, 0x94, 0x08, 0xfc, 0xde, 0x80, 0x65, 0xd4, + 0x74, 0x9d, 0xa6, 0x24, 0x9e, 0x79, 0xfc, 0xb7, 0xa0, 0x43, 0x68, 0x1a, 0xbb, 0x74, 0x96, 0x15, + 0x52, 0x15, 0x9d, 0x72, 0x91, 0x7c, 0xcf, 0x00, 0x4b, 0xa8, 0xda, 0xf1, 0x93, 0xd0, 0x4f, 0x92, + 0x27, 0xe8, 0xba, 0xe9, 0x0c, 0xfe, 0xb9, 0x09, 0x17, 0x15, 0x2d, 0xbb, 0x59, 0xfa, 0xb4, 0x9b, + 0x6c, 0xed, 0x40, 0x9b, 0xd7, 0x08, 0xea, 0xed, 0xc4, 0xb4, 0x1d, 0x95, 0x82, 0xbc, 0x8a, 0x15, + 0x44, 0x9f, 0x0c, 0x18, 0xf5, 0x12, 0x51, 0x1c, 0x75, 0x1d, 0x8d, 0xc7, 0x97, 0xa1, 0x75, 0x45, + 0xcd, 0xb6, 0x4b, 0x07, 0x24, 0x78, 0x66, 0x20, 0xb2, 0x7f, 0x63, 0xc0, 0x12, 0x36, 0x79, 0xfa, + 0x87, 0xcc, 0x73, 0x3d, 0x06, 0xf2, 0x47, 0xc6, 0x4b, 0x3c, 0xbc, 0xd6, 0x14, 0x2d, 0x6a, 0x5d, + 0xfd, 0xf4, 0x86, 0xd6, 0x2d, 0xe8, 0x0c, 0x8e, 0x5c, 0x3a, 0x9c, 0x29, 0xb8, 0x54, 0x51, 0x3b, + 0x85, 0xe7, 0xd4, 0x03, 0xb9, 0x6d, 0xfc, 0x24, 0x86, 0xff, 0x6a, 0x65, 0x28, 0xa7, 0xde, 0x3e, + 0x3e, 0x1e, 0xe8, 0xc7, 0xb0, 0x8a, 0xb7, 0x40, 0x4a, 0x4d, 0x68, 0xf5, 0x60, 0xde, 0xf5, 0xf0, + 0x00, 0xc1, 0x10, 0x42, 0x39, 0xa9, 0xdf, 0xef, 0xc9, 0x27, 0x1c, 0xe5, 0xfd, 0xde, 0x65, 0x00, + 0xd7, 0xf3, 0xde, 0x62, 0xb1, 0xe7, 0xd3, 0xbc, 0xc0, 0x57, 0x38, 0xf6, 0x1b, 0xb0, 0x78, 0x23, + 0x66, 0xe1, 0x3d, 0xe5, 0x3e, 0xe7, 0xd4, 0x1b, 0x27, 0xf5, 0x2e, 0xc8, 0xd4, 0xef, 0x82, 0xec, + 0xef, 0xc0, 0xff, 0xd7, 0x0c, 0x17, 0x60, 0x6d, 0xe3, 0x35, 0x55, 0xde, 0x89, 0x0c, 0x99, 0x4f, + 0x8c, 0x81, 0x4c, 0xb5, 0xc5, 0xd1, 0x84, 0xec, 0x1f, 0x18, 0xf0, 0x7c, 0x4d, 0xfd, 0xb5, 0x28, + 0x8a, 0xd9, 0x89, 0xf4, 0xc9, 0x79, 0x74, 0xa3, 0x17, 0xbf, 0x66, 0xb5, 0xf8, 0x1d, 0x6b, 0x84, + 0x56, 0xb0, 0x7f, 0x08, 0x46, 0xfc, 0xda, 0x80, 0x65, 0x69, 0x84, 0xe7, 0xc9, 0x6e, 0xbf, 0x08, + 0x2d, 0xbc, 0xe2, 0x96, 0x1d, 0x3e, 0x3f, 0xb6, 0xc3, 0xfc, 0x6a, 0xde, 0x91, 0x8d, 0xeb, 0x11, + 0x69, 0x8e, 0x9b, 0x51, 0x5f, 0x2e, 0x82, 0x7d, 0xea, 0x4b, 0x68, 0x29, 0x60, 0x7f, 0x33, 0x0f, + 0xe6, 0x1d, 0x12, 0x90, 0xf3, 0xc4, 0xc8, 0xbe, 0x0f, 0x4b, 0xe2, 0xbe, 0xbd, 0xc4, 0xe0, 0x5c, + 0xd4, 0xbe, 0x05, 0x2b, 0x42, 0xed, 0xb9, 0xdb, 0x5b, 0xcc, 0x0e, 0x8e, 0x8f, 0xba, 0x94, 0x9c, + 0x8b, 0xf6, 0xcf, 0xc3, 0x85, 0x1c, 0xfb, 0xfb, 0x91, 0x57, 0x1c, 0x22, 0x4d, 0x38, 0x3a, 0xb7, + 0xbf, 0x00, 0x6b, 0xdb, 0x8c, 0x9e, 0x90, 0x38, 0xc1, 0x8b, 0x05, 0x21, 0x92, 0x4b, 0x68, 0x93, + 0x5f, 0x52, 0xf6, 0x3b, 0xb0, 0xae, 0x4a, 0xf4, 0x49, 0xba, 0x1f, 0xfb, 0x27, 0x8a, 0x94, 0x3c, + 0x5a, 0x36, 0xb4, 0xa3, 0xe5, 0xf2, 0x28, 0xda, 0xd4, 0x8e, 0xa2, 0x2f, 0x41, 0xdb, 0x4f, 0xa4, + 0x02, 0x11, 0x54, 0x0b, 0x4e, 0xc9, 0xb0, 0xfb, 0xb0, 0x2a, 0x6f, 0xc0, 0xf7, 0xdd, 0xa1, 0x4f, + 0x71, 0x05, 0xbc, 0x0c, 0x10, 0xb9, 0xc3, 0xfc, 0x05, 0x0c, 0xde, 0x42, 0x28, 0x1c, 0xfe, 0x3d, + 0x39, 0x62, 0x0f, 0xe4, 0x77, 0x13, 0xbf, 0x97, 0x1c, 0xfb, 0x1b, 0x60, 0x39, 0x24, 0x89, 0x18, + 0x4d, 0x88, 0xa2, 0x75, 0x03, 0x3a, 0xdb, 0x59, 0x1c, 0x13, 0xca, 0xbb, 0xca, 0x9f, 0x83, 0xa8, + 0x2c, 0xae, 0xb7, 0x5f, 0xea, 0xc5, 0x93, 0x6b, 0x85, 0x63, 0xff, 0xa2, 0x01, 0xed, 0xbe, 0x3f, + 0xa4, 0x6e, 0xe0, 0x90, 0x91, 0xf5, 0x15, 0x68, 0xe1, 0x7e, 0x42, 0xba, 0x71, 0xdc, 0x49, 0x2a, + 0xb6, 0xc6, 0x8d, 0x93, 0x43, 0x46, 0xb7, 0xfe, 0xcf, 0x91, 0x32, 0xd6, 0x9b, 0xd0, 0xc5, 0x5f, + 0xb7, 0xf1, 0x7c, 0x48, 0x26, 0x97, 0xcf, 0x9c, 0xa1, 0x44, 0xb6, 0x46, 0x5d, 0xba, 0x06, 0x6e, + 0xd0, 0x40, 0xd4, 0x1b, 0x72, 0xee, 0x4e, 0x36, 0x08, 0xcb, 0x12, 0x69, 0x10, 0xca, 0x70, 0x69, + 0x57, 0x9c, 0xa0, 0xc8, 0x34, 0x3a, 0x59, 0x1a, 0x0f, 0x5a, 0xa4, 0x34, 0xca, 0x70, 0xe9, 0xa3, + 0x8c, 0x0e, 0xef, 0x47, 0xf2, 0x60, 0x6f, 0xb2, 0xf4, 0x2d, 0xd1, 0x4c, 0x4a, 0xa3, 0x0c, 0x97, + 0x8e, 0xc5, 0xca, 0x2a, 0x40, 0x3f, 0x4d, 0x1a, 0x17, 0x60, 0x29, 0x8d, 0x32, 0x5b, 0x6d, 0x98, + 0x8f, 0xdc, 0x47, 0x01, 0x73, 0x3d, 0xfb, 0xdd, 0x06, 0x40, 0xde, 0x30, 0x11, 0x55, 0x88, 0xe6, + 0xa2, 0xcd, 0x33, 0x5d, 0x14, 0x05, 0x8f, 0x14, 0x27, 0xf5, 0xc7, 0x3b, 0xe9, 0xb3, 0xd3, 0x3a, + 0x09, 0xb5, 0x55, 0xdc, 0x74, 0xb5, 0xe2, 0xa6, 0xcd, 0x33, 0xdd, 0x24, 0x8d, 0x92, 0x8e, 0xba, + 0x5a, 0x71, 0xd4, 0xe6, 0x99, 0x8e, 0x92, 0xf2, 0xd2, 0x55, 0x57, 0x2b, 0xae, 0xda, 0x3c, 0xd3, + 0x55, 0x52, 0x5e, 0x3a, 0xeb, 0x6a, 0xc5, 0x59, 0x9b, 0x67, 0x3a, 0x4b, 0xca, 0xd7, 0xdd, 0xf5, + 0xbe, 0x09, 0x4b, 0x02, 0x32, 0xbc, 0xc5, 0xa3, 0x87, 0x4c, 0x1c, 0xd6, 0x0b, 0xb8, 0xf4, 0x07, + 0x55, 0x3a, 0xd3, 0xfa, 0x1c, 0xac, 0x22, 0x43, 0x3e, 0xc0, 0x29, 0xae, 0x45, 0xdb, 0x4e, 0xfd, + 0x83, 0xb8, 0x77, 0xc9, 0x92, 0x94, 0x85, 0x3b, 0x6e, 0xea, 0xe6, 0x95, 0x51, 0xc9, 0x51, 0x6f, + 0xc5, 0xe6, 0x6a, 0x4f, 0x36, 0x63, 0xc6, 0xc2, 0xe2, 0xba, 0x4b, 0x52, 0x5c, 0x22, 0xf5, 0x43, + 0xc2, 0xb2, 0x54, 0x2e, 0x13, 0x39, 0x89, 0x8f, 0x1e, 0x3c, 0xdf, 0x15, 0x77, 0x49, 0xf2, 0x45, + 0x40, 0xc1, 0x10, 0x2b, 0x5b, 0x79, 0x37, 0x26, 0x9f, 0x54, 0x96, 0x9c, 0xb3, 0xef, 0xb1, 0xec, + 0xbf, 0x1b, 0x70, 0x61, 0xdf, 0x8d, 0x53, 0x7f, 0xe0, 0x47, 0x2e, 0x4d, 0x77, 0x49, 0xea, 0x8a, + 0x31, 0x68, 0xaf, 0xaa, 0x8c, 0xc7, 0x7b, 0x55, 0xb5, 0x0f, 0xcb, 0x43, 0xbd, 0xf4, 0x7f, 0xcc, + 0xaa, 0xbd, 0x2a, 0xae, 0x3d, 0x11, 0x6b, 0x3c, 0xf6, 0x13, 0x31, 0xfb, 0xc7, 0x26, 0x2c, 0x57, + 0x96, 0x4e, 0x5e, 0x8e, 0x62, 0xa1, 0x51, 0xc4, 0x44, 0x41, 0x5b, 0xd7, 0x00, 0xfc, 0x22, 0x8c, + 0x4e, 0x39, 0x19, 0xd7, 0x63, 0xcd, 0x51, 0x84, 0xc6, 0x5d, 0x90, 0x35, 0x66, 0xbe, 0x20, 0xe3, + 0x1b, 0x93, 0xa8, 0x74, 0xd2, 0x29, 0x1b, 0x93, 0x31, 0xae, 0x74, 0x54, 0x51, 0xfb, 0xdb, 0xb0, + 0x5a, 0x5b, 0xa1, 0xc4, 0x7d, 0x19, 0x3b, 0x26, 0xb4, 0xb8, 0x2f, 0xe3, 0x84, 0x12, 0xac, 0x66, + 0x35, 0x58, 0x03, 0xff, 0x44, 0x7d, 0x83, 0x2a, 0x49, 0xfb, 0x27, 0x26, 0xac, 0x8d, 0xcf, 0x2e, + 0xcf, 0x2a, 0xdc, 0x07, 0xd0, 0x9b, 0xb4, 0x92, 0x9f, 0x1b, 0xea, 0x65, 0x74, 0x17, 0x79, 0xf8, + 0x59, 0x85, 0xfb, 0x42, 0x1e, 0xdd, 0x4a, 0xaa, 0xb3, 0x7f, 0x57, 0xe0, 0x53, 0x54, 0x1a, 0xcf, + 0x28, 0x3e, 0xd6, 0x4b, 0xb0, 0x82, 0xc3, 0x54, 0x5e, 0x54, 0x60, 0xe1, 0x5a, 0xe3, 0x97, 0x2b, + 0x85, 0x92, 0xf6, 0xcf, 0x2d, 0x66, 0xff, 0x68, 0xe4, 0x3e, 0x29, 0xea, 0xb7, 0x8f, 0x94, 0x4f, + 0xca, 0x48, 0x53, 0x8a, 0x1a, 0x25, 0xd2, 0x8a, 0xba, 0xf2, 0x7f, 0x91, 0x76, 0x76, 0xa4, 0x15, + 0x58, 0x2a, 0x05, 0x9e, 0xfd, 0x7d, 0xe8, 0xee, 0x90, 0x60, 0x37, 0x19, 0xe6, 0x6f, 0xb9, 0x4e, + 0x03, 0x72, 0xd2, 0x5f, 0x61, 0x26, 0xbe, 0xe2, 0xaa, 0xbe, 0x00, 0x9b, 0xab, 0xbd, 0x00, 0xb3, + 0xb7, 0x60, 0x49, 0x35, 0x60, 0x96, 0xa7, 0x6c, 0x5b, 0x97, 0xbe, 0xb5, 0x7e, 0xe5, 0x65, 0xfc, + 0xd3, 0xd5, 0xeb, 0x35, 0x10, 0x0f, 0x5a, 0xe2, 0x4f, 0x58, 0xaf, 0xfe, 0x37, 0x00, 0x00, 0xff, + 0xff, 0xda, 0x69, 0x8c, 0xa6, 0x97, 0x35, 0x00, 0x00, } From 0a939a5b9151e54db6d575d5e44c7987a18b5d09 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 24 Apr 2022 10:38:22 +0800 Subject: [PATCH 20/57] Merge branch 'tuoyun' # Conflicts: # config/config.yaml --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index c67203773..be661eaef 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -94,7 +94,7 @@ services: command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new open_im_server: - image: openim/open_im_server:v2.0.5 + image: openim/open_im_server:v2.0.8 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From df17dd749f31bbb214c7ef9cd2e40e2b0d6040a4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 24 Apr 2022 11:23:54 +0800 Subject: [PATCH 21/57] add rpc conversation --- cmd/rpc/open_im_conversation/Makefile | 24 ++ cmd/rpc/open_im_conversation/main.go | 16 + config/config.yaml | 2 + internal/rpc/conversation/conversaion.go | 72 ++++ pkg/common/config/config.go | 1 + pkg/proto/conversation/conversation.pb.go | 429 ++++++++++++++++++++++ pkg/proto/conversation/conversation.proto | 2 +- script/check_all.sh | 1 + script/path_info.cfg | 4 +- script/start_rpc_service.sh | 2 + 10 files changed, 551 insertions(+), 2 deletions(-) create mode 100644 cmd/rpc/open_im_conversation/Makefile create mode 100644 cmd/rpc/open_im_conversation/main.go create mode 100644 internal/rpc/conversation/conversaion.go create mode 100644 pkg/proto/conversation/conversation.pb.go diff --git a/cmd/rpc/open_im_conversation/Makefile b/cmd/rpc/open_im_conversation/Makefile new file mode 100644 index 000000000..c1a5578bc --- /dev/null +++ b/cmd/rpc/open_im_conversation/Makefile @@ -0,0 +1,24 @@ +.PHONY: all build run gotool install clean help + +BINARY_NAME=open_im_conversation +BIN_DIR=../../../bin/ + +all: gotool build + +build: + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" + +run: + @go run ./ + +gotool: + go fmt ./ + go vet ./ + +install: + make build + mv ${BINARY_NAME} ${BIN_DIR} + +clean: + @if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi + diff --git a/cmd/rpc/open_im_conversation/main.go b/cmd/rpc/open_im_conversation/main.go new file mode 100644 index 000000000..47570a85b --- /dev/null +++ b/cmd/rpc/open_im_conversation/main.go @@ -0,0 +1,16 @@ +package main + +import ( + rpcConversation "Open_IM/internal/rpc/conversation" + "flag" + "fmt" +) + +func main() { + rpcPort := flag.Int("port", 11300, "RpcConversation default listen port 11300") + flag.Parse() + fmt.Println("start conversation rpc server, port: ", *rpcPort) + rpcServer := rpcConversation.NewRpcConversationServer(*rpcPort) + rpcServer.Run() + +} diff --git a/config/config.yaml b/config/config.yaml index 39a69298f..fec3424fc 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -123,6 +123,7 @@ rpcport: #rpc服务端口 默认即可 openImAdminCmsPort: [ 11000 ] openImOfficePort: [ 11100 ] openImOrganizationPort: [ 11200 ] + openImConversatinPort: [ 11300 ] c2c: callbackBeforeSendMsg: switch: false @@ -146,6 +147,7 @@ rpcregistername: #rpc注册服务名,默认即可 openImAdminCMSName: AdminCMS openImOfficeName: Office openImOrganizationName: Organization + openImConversationName: Conversation log: storageLocation: ../logs/ diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go new file mode 100644 index 000000000..cd45763c9 --- /dev/null +++ b/internal/rpc/conversation/conversaion.go @@ -0,0 +1,72 @@ +package conversation + +import ( + "Open_IM/pkg/common/constant" + _ "Open_IM/pkg/common/db" + _ "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + _ "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbConversation "Open_IM/pkg/proto/conversation" + "Open_IM/pkg/utils" + "context" + "net" + "strconv" + "strings" + + "Open_IM/pkg/common/config" + + "google.golang.org/grpc" +) + +type rpcConversation struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbConversation.ModifyConversationFieldReq) (*pbConversation.ModifyConversationFieldResp, error) { + panic("implement me") +} + +func NewRpcConversationServer(port int) *rpcConversation { + log.NewPrivateLog(constant.LogFileName) + return &rpcConversation{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImConversationName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} + +func (rpc *rpcConversation) Run() { + log.NewInfo("0", "rpc conversation start...") + + address := utils.ServerIP + ":" + strconv.Itoa(rpc.rpcPort) + listener, err := net.Listen("tcp", address) + if err != nil { + log.NewError("0", "listen network failed ", err.Error(), address) + return + } + log.NewInfo("0", "listen network success, ", address, listener) + //grpc server + srv := grpc.NewServer() + defer srv.GracefulStop() + + //service registers with etcd + pbConversation.RegisterConversationServer(srv, rpc) + err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), utils.ServerIP, rpc.rpcPort, rpc.rpcRegisterName, 10) + if err != nil { + log.NewError("0", "RegisterEtcd failed ", err.Error(), + rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), utils.ServerIP, rpc.rpcPort, rpc.rpcRegisterName) + return + } + log.NewInfo("0", "RegisterConversationServer ok ", rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), utils.ServerIP, rpc.rpcPort, rpc.rpcRegisterName) + err = srv.Serve(listener) + if err != nil { + log.NewError("0", "Serve failed ", err.Error()) + return + } + log.NewInfo("0", "rpc conversation ok") +} diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index aed2c1173..49e0e0849 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -118,6 +118,7 @@ type config struct { OpenImAdminCMSName string `yaml:"openImAdminCMSName"` OpenImOfficeName string `yaml:"openImOfficeName"` OpenImOrganizationName string `yaml:"openImOrganizationName"` + OpenImConversationName string `yaml:"openImConversationName"` } Etcd struct { EtcdSchema string `yaml:"etcdSchema"` diff --git a/pkg/proto/conversation/conversation.pb.go b/pkg/proto/conversation/conversation.pb.go new file mode 100644 index 000000000..bf76bfe67 --- /dev/null +++ b/pkg/proto/conversation/conversation.pb.go @@ -0,0 +1,429 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: conversation/conversation.proto + +package conversation // import "./conversation" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type CommonResp 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:"-"` +} + +func (m *CommonResp) Reset() { *m = CommonResp{} } +func (m *CommonResp) String() string { return proto.CompactTextString(m) } +func (*CommonResp) ProtoMessage() {} +func (*CommonResp) Descriptor() ([]byte, []int) { + return fileDescriptor_conversation_e6bf38f800b9bed2, []int{0} +} +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) +} +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) +} +func (dst *CommonResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonResp.Merge(dst, src) +} +func (m *CommonResp) XXX_Size() int { + return xxx_messageInfo_CommonResp.Size(m) +} +func (m *CommonResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommonResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *CommonResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +type Conversation struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=conversationID" json:"conversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=recvMsgOpt" json:"recvMsgOpt,omitempty"` + ConversationType int32 `protobuf:"varint,4,opt,name=conversationType" json:"conversationType,omitempty"` + UserID string `protobuf:"bytes,5,opt,name=userID" json:"userID,omitempty"` + GroupID string `protobuf:"bytes,6,opt,name=groupID" json:"groupID,omitempty"` + UnreadCount int32 `protobuf:"varint,7,opt,name=unreadCount" json:"unreadCount,omitempty"` + DraftTextTime int64 `protobuf:"varint,8,opt,name=draftTextTime" json:"draftTextTime,omitempty"` + IsPinned bool `protobuf:"varint,9,opt,name=isPinned" json:"isPinned,omitempty"` + AttachedInfo string `protobuf:"bytes,10,opt,name=attachedInfo" json:"attachedInfo,omitempty"` + IsPrivateChat bool `protobuf:"varint,11,opt,name=isPrivateChat" json:"isPrivateChat,omitempty"` + GroupAtType int32 `protobuf:"varint,12,opt,name=groupAtType" json:"groupAtType,omitempty"` + IsNotInGroup bool `protobuf:"varint,13,opt,name=isNotInGroup" json:"isNotInGroup,omitempty"` + Ex string `protobuf:"bytes,14,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Conversation) Reset() { *m = Conversation{} } +func (m *Conversation) String() string { return proto.CompactTextString(m) } +func (*Conversation) ProtoMessage() {} +func (*Conversation) Descriptor() ([]byte, []int) { + return fileDescriptor_conversation_e6bf38f800b9bed2, []int{1} +} +func (m *Conversation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Conversation.Unmarshal(m, b) +} +func (m *Conversation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Conversation.Marshal(b, m, deterministic) +} +func (dst *Conversation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Conversation.Merge(dst, src) +} +func (m *Conversation) XXX_Size() int { + return xxx_messageInfo_Conversation.Size(m) +} +func (m *Conversation) XXX_DiscardUnknown() { + xxx_messageInfo_Conversation.DiscardUnknown(m) +} + +var xxx_messageInfo_Conversation proto.InternalMessageInfo + +func (m *Conversation) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *Conversation) GetConversationID() string { + if m != nil { + return m.ConversationID + } + return "" +} + +func (m *Conversation) GetRecvMsgOpt() int32 { + if m != nil { + return m.RecvMsgOpt + } + return 0 +} + +func (m *Conversation) GetConversationType() int32 { + if m != nil { + return m.ConversationType + } + return 0 +} + +func (m *Conversation) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *Conversation) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *Conversation) GetUnreadCount() int32 { + if m != nil { + return m.UnreadCount + } + return 0 +} + +func (m *Conversation) GetDraftTextTime() int64 { + if m != nil { + return m.DraftTextTime + } + return 0 +} + +func (m *Conversation) GetIsPinned() bool { + if m != nil { + return m.IsPinned + } + return false +} + +func (m *Conversation) GetAttachedInfo() string { + if m != nil { + return m.AttachedInfo + } + return "" +} + +func (m *Conversation) GetIsPrivateChat() bool { + if m != nil { + return m.IsPrivateChat + } + return false +} + +func (m *Conversation) GetGroupAtType() int32 { + if m != nil { + return m.GroupAtType + } + return 0 +} + +func (m *Conversation) GetIsNotInGroup() bool { + if m != nil { + return m.IsNotInGroup + } + return false +} + +func (m *Conversation) GetEx() string { + if m != nil { + return m.Ex + } + return "" +} + +type ModifyConversationFieldReq struct { + Conversation *Conversation `protobuf:"bytes,1,opt,name=conversation" json:"conversation,omitempty"` + FieldType int32 `protobuf:"varint,2,opt,name=fieldType" json:"fieldType,omitempty"` + UserIDList []string `protobuf:"bytes,3,rep,name=userIDList" json:"userIDList,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ModifyConversationFieldReq) Reset() { *m = ModifyConversationFieldReq{} } +func (m *ModifyConversationFieldReq) String() string { return proto.CompactTextString(m) } +func (*ModifyConversationFieldReq) ProtoMessage() {} +func (*ModifyConversationFieldReq) Descriptor() ([]byte, []int) { + return fileDescriptor_conversation_e6bf38f800b9bed2, []int{2} +} +func (m *ModifyConversationFieldReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ModifyConversationFieldReq.Unmarshal(m, b) +} +func (m *ModifyConversationFieldReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ModifyConversationFieldReq.Marshal(b, m, deterministic) +} +func (dst *ModifyConversationFieldReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_ModifyConversationFieldReq.Merge(dst, src) +} +func (m *ModifyConversationFieldReq) XXX_Size() int { + return xxx_messageInfo_ModifyConversationFieldReq.Size(m) +} +func (m *ModifyConversationFieldReq) XXX_DiscardUnknown() { + xxx_messageInfo_ModifyConversationFieldReq.DiscardUnknown(m) +} + +var xxx_messageInfo_ModifyConversationFieldReq proto.InternalMessageInfo + +func (m *ModifyConversationFieldReq) GetConversation() *Conversation { + if m != nil { + return m.Conversation + } + return nil +} + +func (m *ModifyConversationFieldReq) GetFieldType() int32 { + if m != nil { + return m.FieldType + } + return 0 +} + +func (m *ModifyConversationFieldReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList + } + return nil +} + +func (m *ModifyConversationFieldReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type ModifyConversationFieldResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ModifyConversationFieldResp) Reset() { *m = ModifyConversationFieldResp{} } +func (m *ModifyConversationFieldResp) String() string { return proto.CompactTextString(m) } +func (*ModifyConversationFieldResp) ProtoMessage() {} +func (*ModifyConversationFieldResp) Descriptor() ([]byte, []int) { + return fileDescriptor_conversation_e6bf38f800b9bed2, []int{3} +} +func (m *ModifyConversationFieldResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ModifyConversationFieldResp.Unmarshal(m, b) +} +func (m *ModifyConversationFieldResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ModifyConversationFieldResp.Marshal(b, m, deterministic) +} +func (dst *ModifyConversationFieldResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_ModifyConversationFieldResp.Merge(dst, src) +} +func (m *ModifyConversationFieldResp) XXX_Size() int { + return xxx_messageInfo_ModifyConversationFieldResp.Size(m) +} +func (m *ModifyConversationFieldResp) XXX_DiscardUnknown() { + xxx_messageInfo_ModifyConversationFieldResp.DiscardUnknown(m) +} + +var xxx_messageInfo_ModifyConversationFieldResp proto.InternalMessageInfo + +func (m *ModifyConversationFieldResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func init() { + proto.RegisterType((*CommonResp)(nil), "conversation.CommonResp") + proto.RegisterType((*Conversation)(nil), "conversation.Conversation") + proto.RegisterType((*ModifyConversationFieldReq)(nil), "conversation.ModifyConversationFieldReq") + proto.RegisterType((*ModifyConversationFieldResp)(nil), "conversation.ModifyConversationFieldResp") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for Conversation service + +type ConversationClient interface { + ModifyConversationField(ctx context.Context, in *ModifyConversationFieldReq, opts ...grpc.CallOption) (*ModifyConversationFieldResp, error) +} + +type conversationClient struct { + cc *grpc.ClientConn +} + +func NewConversationClient(cc *grpc.ClientConn) ConversationClient { + return &conversationClient{cc} +} + +func (c *conversationClient) ModifyConversationField(ctx context.Context, in *ModifyConversationFieldReq, opts ...grpc.CallOption) (*ModifyConversationFieldResp, error) { + out := new(ModifyConversationFieldResp) + err := grpc.Invoke(ctx, "/conversation.conversation/ModifyConversationField", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Conversation service + +type ConversationServer interface { + ModifyConversationField(context.Context, *ModifyConversationFieldReq) (*ModifyConversationFieldResp, error) +} + +func RegisterConversationServer(s *grpc.Server, srv ConversationServer) { + s.RegisterService(&_Conversation_serviceDesc, srv) +} + +func _Conversation_ModifyConversationField_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ModifyConversationFieldReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversationServer).ModifyConversationField(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/conversation.conversation/ModifyConversationField", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversationServer).ModifyConversationField(ctx, req.(*ModifyConversationFieldReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _Conversation_serviceDesc = grpc.ServiceDesc{ + ServiceName: "conversation.conversation", + HandlerType: (*ConversationServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ModifyConversationField", + Handler: _Conversation_ModifyConversationField_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "conversation/conversation.proto", +} + +func init() { + proto.RegisterFile("conversation/conversation.proto", fileDescriptor_conversation_e6bf38f800b9bed2) +} + +var fileDescriptor_conversation_e6bf38f800b9bed2 = []byte{ + // 475 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x8a, 0xd3, 0x40, + 0x14, 0x87, 0x49, 0xbb, 0xdb, 0x6d, 0x4e, 0xbb, 0x45, 0xe6, 0x42, 0x87, 0xae, 0x7f, 0x42, 0x10, + 0x89, 0x5e, 0x54, 0x58, 0x6f, 0x04, 0x61, 0x41, 0x53, 0x94, 0x80, 0xd5, 0x65, 0xa8, 0x08, 0xde, + 0xc5, 0xe6, 0xb4, 0x3b, 0x60, 0x67, 0xe2, 0xcc, 0xb4, 0x76, 0x6f, 0x7c, 0x32, 0x9f, 0xc4, 0xa7, + 0x91, 0x99, 0xb4, 0xbb, 0x33, 0x95, 0xc2, 0x5e, 0x9e, 0x2f, 0x27, 0xbf, 0xf9, 0x26, 0xe7, 0x04, + 0x9e, 0xcc, 0xa4, 0x58, 0xa3, 0xd2, 0xa5, 0xe1, 0x52, 0xbc, 0xf4, 0x8b, 0x51, 0xad, 0xa4, 0x91, + 0xa4, 0xef, 0xb3, 0xf4, 0x02, 0x20, 0x97, 0xcb, 0xa5, 0x14, 0x0c, 0x75, 0x4d, 0x28, 0x9c, 0xa0, + 0x52, 0xb9, 0xac, 0x90, 0x46, 0x49, 0x94, 0x1d, 0xb3, 0x5d, 0x49, 0xee, 0x43, 0x07, 0x95, 0x9a, + 0xe8, 0x05, 0x6d, 0x25, 0x51, 0x16, 0xb3, 0x6d, 0x95, 0xfe, 0x6d, 0x43, 0x3f, 0xf7, 0x02, 0x49, + 0x02, 0x3d, 0xf9, 0x4b, 0xa0, 0xfa, 0xa2, 0x51, 0x15, 0x63, 0x17, 0x13, 0x33, 0x1f, 0x91, 0x67, + 0x30, 0xf0, 0x15, 0x8a, 0xf1, 0x36, 0x72, 0x8f, 0x92, 0xc7, 0x00, 0x0a, 0x67, 0xeb, 0x89, 0x5e, + 0x7c, 0xae, 0x0d, 0x6d, 0x3b, 0x1f, 0x8f, 0x90, 0x17, 0x70, 0xcf, 0x7f, 0x63, 0x7a, 0x5d, 0x23, + 0x3d, 0x72, 0x5d, 0xff, 0x71, 0xab, 0xbf, 0x6a, 0x84, 0x8e, 0x1b, 0xfd, 0xa6, 0xb2, 0x17, 0x5e, + 0x28, 0xb9, 0xaa, 0x8b, 0x31, 0xed, 0xb8, 0x07, 0xbb, 0xd2, 0xde, 0x63, 0x25, 0x14, 0x96, 0x55, + 0x2e, 0x57, 0xc2, 0xd0, 0x13, 0x17, 0xec, 0x23, 0xf2, 0x14, 0x4e, 0x2b, 0x55, 0xce, 0xcd, 0x14, + 0x37, 0x66, 0xca, 0x97, 0x48, 0xbb, 0x49, 0x94, 0xb5, 0x59, 0x08, 0xc9, 0x10, 0xba, 0x5c, 0x5f, + 0x72, 0x21, 0xb0, 0xa2, 0x71, 0x12, 0x65, 0x5d, 0x76, 0x53, 0x93, 0x14, 0xfa, 0xa5, 0x31, 0xe5, + 0xec, 0x0a, 0xab, 0x42, 0xcc, 0x25, 0x05, 0xa7, 0x10, 0x30, 0x7b, 0x0a, 0xd7, 0x97, 0x8a, 0xaf, + 0x4b, 0x83, 0xf9, 0x55, 0x69, 0x68, 0xcf, 0x85, 0x84, 0xd0, 0xda, 0x3a, 0xf1, 0xb7, 0xc6, 0x7d, + 0x86, 0x7e, 0x63, 0xeb, 0x21, 0x7b, 0x16, 0xd7, 0x9f, 0xa4, 0x29, 0xc4, 0x07, 0x4b, 0xe9, 0xa9, + 0x8b, 0x09, 0x18, 0x19, 0x40, 0x0b, 0x37, 0x74, 0xe0, 0x2c, 0x5a, 0xb8, 0x49, 0xff, 0x44, 0x30, + 0x9c, 0xc8, 0x8a, 0xcf, 0xaf, 0xfd, 0x11, 0xbf, 0xe7, 0xf8, 0xa3, 0x62, 0xf8, 0x93, 0x5c, 0x40, + 0xb0, 0x4b, 0x6e, 0xd6, 0xbd, 0xf3, 0xe1, 0x28, 0x58, 0x3a, 0xff, 0x4d, 0x16, 0xf4, 0x93, 0x87, + 0x10, 0xcf, 0x6d, 0x96, 0x53, 0x6e, 0x39, 0xe5, 0x5b, 0x60, 0xc7, 0xdf, 0x0c, 0xe9, 0x23, 0xd7, + 0x76, 0xfc, 0xed, 0x2c, 0x66, 0x1e, 0x71, 0x8b, 0x56, 0xa3, 0xda, 0xed, 0xd0, 0xd1, 0x76, 0xd1, + 0x6e, 0x51, 0xfa, 0x15, 0xce, 0x0e, 0xda, 0xeb, 0x9a, 0xbc, 0x06, 0x98, 0xdd, 0xac, 0xfe, 0x56, + 0x9e, 0xee, 0xcb, 0xef, 0x9e, 0x33, 0xaf, 0xf7, 0xfc, 0x77, 0x78, 0x71, 0x22, 0xe0, 0xc1, 0x81, + 0x83, 0x48, 0x16, 0x06, 0x1e, 0xfe, 0x9a, 0xc3, 0xe7, 0x77, 0xec, 0xd4, 0xf5, 0xbb, 0x47, 0xdf, + 0xce, 0x46, 0xc1, 0xaf, 0xfd, 0xc6, 0x2f, 0xbe, 0x77, 0xdc, 0x8f, 0xfe, 0xea, 0x5f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x8d, 0x8a, 0xf6, 0x60, 0x0b, 0x04, 0x00, 0x00, +} diff --git a/pkg/proto/conversation/conversation.proto b/pkg/proto/conversation/conversation.proto index 2dfcc7ed5..5ae5f1142 100644 --- a/pkg/proto/conversation/conversation.proto +++ b/pkg/proto/conversation/conversation.proto @@ -32,7 +32,7 @@ message ModifyConversationFieldReq{ message ModifyConversationFieldResp{ CommonResp commonResp = 1; } -service user { +service conversation { rpc ModifyConversationField(ModifyConversationFieldReq)returns(ModifyConversationFieldResp); } diff --git a/script/check_all.sh b/script/check_all.sh index c434c65d2..0e828fd54 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -21,6 +21,7 @@ service_port_name=( openImStatisticsPort openImOfficePort openImOrganizationPort + openImConversationPort ) switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') for i in ${service_port_name[*]}; do diff --git a/script/path_info.cfg b/script/path_info.cfg index b50fc18fb..3071a0a5d 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -50,6 +50,7 @@ service_source_root=( ../cmd/rpc/open_im_statistics/ ../cmd/rpc/open_im_office/ ../cmd/rpc/open_im_organization/ + ../cmd/rpc/open_im_conversation/ ${msg_gateway_source_root} ${msg_transfer_source_root} ${msg_source_root} @@ -71,7 +72,8 @@ service_names=( open_im_message_cms open_im_statistics open_im_office - open_im_organization + open_im_organization + open_im_conversation ${msg_gateway_name} ${msg_transfer_name} ${msg_name} diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 20e7991b4..2e249bbc1 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -20,6 +20,7 @@ service_filename=( ${msg_name} open_im_office open_im_organization + open_im_conversation ) #service config port name @@ -38,6 +39,7 @@ service_port_name=( openImOfflineMessagePort openImOfficePort openImOrganizationPort + openImConversationPort ) for ((i = 0; i < ${#service_filename[*]}; i++)); do From 4acbe4b31a35680cbe5d97a952734ee0eccfd8ae Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 24 Apr 2022 11:49:01 +0800 Subject: [PATCH 22/57] config --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index fec3424fc..b1f7b7b3a 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -123,7 +123,7 @@ rpcport: #rpc服务端口 默认即可 openImAdminCmsPort: [ 11000 ] openImOfficePort: [ 11100 ] openImOrganizationPort: [ 11200 ] - openImConversatinPort: [ 11300 ] + openImConversationPort: [ 11300 ] c2c: callbackBeforeSendMsg: switch: false From 4eb96617307f8019648b492c5f0ae307c738ae0b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 24 Apr 2022 11:50:36 +0800 Subject: [PATCH 23/57] fix docker-compose --- cmd/open_im_cms_api/main.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cmd/open_im_cms_api/main.go b/cmd/open_im_cms_api/main.go index 262020fea..024439075 100644 --- a/cmd/open_im_cms_api/main.go +++ b/cmd/open_im_cms_api/main.go @@ -3,7 +3,9 @@ package main import ( "Open_IM/internal/cms_api" "Open_IM/pkg/utils" + "flag" "fmt" + "strconv" "github.com/gin-gonic/gin" ) @@ -12,6 +14,7 @@ func main() { gin.SetMode(gin.ReleaseMode) router := cms_api.NewGinRouter() router.Use(utils.CorsHandler()) - fmt.Println("start cms api server, port: ", 8000) - router.Run(":" + "8000") + ginPort := flag.Int("port", 8000, "get ginServerPort from cmd,default 10000 as port") + fmt.Println("start cms api server, port: ", ginPort) + router.Run(":" + strconv.Itoa(*ginPort)) } From 1809c59f25bc44cbe5c6ce1e6727cde47f255e38 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 24 Apr 2022 11:53:50 +0800 Subject: [PATCH 24/57] config --- cmd/rpc/open_im_conversation/main.go | 2 +- config/config.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/rpc/open_im_conversation/main.go b/cmd/rpc/open_im_conversation/main.go index 47570a85b..dc43063e6 100644 --- a/cmd/rpc/open_im_conversation/main.go +++ b/cmd/rpc/open_im_conversation/main.go @@ -7,7 +7,7 @@ import ( ) func main() { - rpcPort := flag.Int("port", 11300, "RpcConversation default listen port 11300") + rpcPort := flag.Int("port", 11400, "RpcConversation default listen port 11300") flag.Parse() fmt.Println("start conversation rpc server, port: ", *rpcPort) rpcServer := rpcConversation.NewRpcConversationServer(*rpcPort) diff --git a/config/config.yaml b/config/config.yaml index b1f7b7b3a..445357150 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -123,7 +123,7 @@ rpcport: #rpc服务端口 默认即可 openImAdminCmsPort: [ 11000 ] openImOfficePort: [ 11100 ] openImOrganizationPort: [ 11200 ] - openImConversationPort: [ 11300 ] + openImConversationPort: [ 11400 ] c2c: callbackBeforeSendMsg: switch: false From 150af5ff8b4381f2b00c97207e725237306f0907 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 24 Apr 2022 15:55:19 +0800 Subject: [PATCH 25/57] @ people update --- internal/rpc/conversation/conversaion.go | 105 +++- internal/rpc/msg/send_msg.go | 77 ++- pkg/common/constant/constant.go | 10 + .../im_mysql_model/conversation_model.go | 145 +++++ .../mysql_model/im_mysql_model/user_model.go | 99 ---- pkg/proto/sdk_ws/ws.pb.go | 494 +++++++++--------- pkg/proto/sdk_ws/ws.proto | 3 +- 7 files changed, 567 insertions(+), 366 deletions(-) create mode 100644 pkg/common/db/mysql_model/im_mysql_model/conversation_model.go diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index cd45763c9..409c1e488 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -1,11 +1,11 @@ package conversation import ( + chat "Open_IM/internal/rpc/msg" "Open_IM/pkg/common/constant" - _ "Open_IM/pkg/common/db" - _ "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/db" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" - _ "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbConversation "Open_IM/pkg/proto/conversation" "Open_IM/pkg/utils" @@ -27,9 +27,104 @@ type rpcConversation struct { } func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbConversation.ModifyConversationFieldReq) (*pbConversation.ModifyConversationFieldResp, error) { - panic("implement me") + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbConversation.ModifyConversationFieldResp{} + var err error + if req.Conversation.ConversationType == constant.GroupChatType { + groupInfo, err := imdb.GetGroupInfoByGroupID(req.Conversation.GroupID) + if err != nil { + log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", req.Conversation.GroupID, err.Error()) + resp.CommonResp = &pbConversation.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + if groupInfo.Status == constant.GroupStatusDismissed && !req.Conversation.IsNotInGroup { + errMsg := "group status is dismissed" + resp.CommonResp = &pbConversation.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg} + return resp, nil + } + } + var conversation db.Conversation + if err := utils.CopyStructFields(&conversation, req.Conversation); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", *req.Conversation, err.Error()) + } + haveUserID, _ := imdb.GetExistConversationUserIDList(req.Conversation.ConversationID) + switch req.FieldType { + case constant.RecvMsgOpt: + for _, v := range req.UserIDList { + if err = db.DB.SetSingleConversationRecvMsgOpt(v, req.Conversation.ConversationID, req.Conversation.RecvMsgOpt); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "cache failed, rpc return", err.Error()) + resp.CommonResp = &pbConversation.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + } + err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt}) + case constant.GroupAtType: + err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"group_at_type": conversation.GroupAtType}) + case constant.IsNotInGroup: + err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"is_not_in_group": conversation.IsNotInGroup}) + case constant.IsPinned: + err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"is_pinned": conversation.IsPinned}) + case constant.IsPrivateChat: + err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"is_private_chat": conversation.IsPrivateChat}) + case constant.Ex: + err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"ex": conversation.Ex}) + case constant.AttachedInfo: + err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"attached_info": conversation.AttachedInfo}) + } + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateColumnsConversations error", err.Error()) + resp.CommonResp = &pbConversation.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + for _, v := range utils.DifferenceString(haveUserID, req.UserIDList) { + conversation.OwnerUserID = v + err := imdb.SetOneConversation(conversation) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) + resp.CommonResp = &pbConversation.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + } + // notification + if req.Conversation.ConversationType == constant.SingleChatType && req.FieldType == constant.IsPrivateChat { + //sync peer user conversation if conversation is singleChatType + if err := syncPeerUserConversation(req.Conversation, req.OperationID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "syncPeerUserConversation", err.Error()) + resp.CommonResp = &pbConversation.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + } else { + for _, v := range req.UserIDList { + chat.ConversationChangeNotification(req.OperationID, v) + } + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return", resp.String()) + resp.CommonResp = &pbConversation.CommonResp{} + return resp, nil +} +func syncPeerUserConversation(conversation *pbConversation.Conversation, operationID string) error { + peerUserConversation := db.Conversation{ + OwnerUserID: conversation.UserID, + ConversationID: utils.GetConversationIDBySessionType(conversation.OwnerUserID, constant.SingleChatType), + ConversationType: constant.SingleChatType, + UserID: conversation.OwnerUserID, + GroupID: "", + RecvMsgOpt: 0, + UnreadCount: 0, + DraftTextTime: 0, + IsPinned: false, + IsPrivateChat: conversation.IsPrivateChat, + AttachedInfo: "", + Ex: "", + } + err := imdb.PeerUserSetConversation(peerUserConversation) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) + return err + } + chat.ConversationSetPrivateNotification(operationID, conversation.OwnerUserID, conversation.UserID, conversation.IsPrivateChat) + return nil } - func NewRpcConversationServer(port int) *rpcConversation { log.NewPrivateLog(constant.LogFileName) return &rpcConversation{ diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 141c072ec..16fba65dc 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" + pbConversation "Open_IM/pkg/proto/conversation" rpc "Open_IM/pkg/proto/friend" pbGroup "Open_IM/pkg/proto/group" sdk_ws "Open_IM/pkg/proto/sdk_ws" @@ -227,6 +228,12 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S log.Error(pb.Token, pb.OperationID, "rpc send_msg getGroupInfo failed, err = %s", reply.ErrMsg) return returnMsg(&replay, pb, reply.ErrCode, reply.ErrMsg, "", 0) } + memberUserIDList := func(all []*sdk_ws.GroupMemberFullInfo) (result []string) { + for _, v := range all { + result = append(result, v.UserID) + } + return result + }(reply.MemberList) var addUidList []string switch pb.MsgData.ContentType { case constant.MemberKickedNotification: @@ -247,31 +254,65 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S case constant.MemberQuitNotification: addUidList = append(addUidList, pb.MsgData.SendID) case constant.AtText: - //tagMe := utils.IsContain(c.loginUserID, s.AtElem.AtUserList) - //tagAll := utils.IsContain(constant.AtAllString, pb.MsgData.AtUserIDList) - //if tagAll { - // if tagMe { - // lc.GroupAtType = constant.AtAllAtMe - // return - // } - // lc.GroupAtType = constant.AtAll - // return - //} - //if tagMe { - // lc.GroupAtType = constant.AtMe - //} + var conversationReq pbConversation.ModifyConversationFieldReq + var tag bool + var atUserID []string + conversation := pbConversation.Conversation{ + OwnerUserID: pb.MsgData.SendID, + ConversationID: utils.GetConversationIDBySessionType(pb.MsgData.GroupID, constant.GroupChatType), + ConversationType: constant.GroupChatType, + GroupID: pb.MsgData.GroupID, + } + conversationReq.Conversation = &conversation + conversationReq.OperationID = pb.OperationID + conversationReq.FieldType = constant.GroupAtType + tagAll := utils.IsContain(constant.AtAllString, pb.MsgData.AtUserIDList) + if tagAll { + atUserID = utils.DifferenceString([]string{constant.AtAllString}, pb.MsgData.AtUserIDList) + if len(atUserID) == 0 { //just @everyone + conversationReq.UserIDList = memberUserIDList + conversation.GroupAtType = constant.AtAll + } else { //@Everyone and @other people + conversationReq.UserIDList = atUserID + conversation.GroupAtType = constant.AtAllAtMe + tag = true + } + } else { + conversationReq.UserIDList = pb.MsgData.AtUserIDList + conversation.GroupAtType = constant.AtMe + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName) + client := pbConversation.NewConversationClient(etcdConn) + conversationReply, err := client.ModifyConversationField(context.Background(), &conversationReq) + if err != nil { + log.NewError(conversationReq.OperationID, "ModifyConversationField rpc failed, ", conversationReq.String(), err.Error()) + } else if conversationReply.CommonResp.ErrCode != 0 { + log.NewError(conversationReq.OperationID, "ModifyConversationField rpc failed, ", conversationReq.String(), conversationReply.String()) + } + if tag { + conversationReq.UserIDList = utils.DifferenceString(atUserID, memberUserIDList) + conversation.GroupAtType = constant.AtAll + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName) + client := pbConversation.NewConversationClient(etcdConn) + conversationReply, err := client.ModifyConversationField(context.Background(), &conversationReq) + if err != nil { + log.NewError(conversationReq.OperationID, "ModifyConversationField rpc failed, ", conversationReq.String(), err.Error()) + } else if conversationReply.CommonResp.ErrCode != 0 { + log.NewError(conversationReq.OperationID, "ModifyConversationField rpc failed, ", conversationReq.String(), conversationReply.String()) + } + } default: } groupID := pb.MsgData.GroupID - for _, v := range reply.MemberList { - pb.MsgData.RecvID = v.UserID - isSend := modifyMessageByUserMessageReceiveOpt(v.UserID, groupID, constant.GroupChatType, pb) + for _, v := range memberUserIDList { + pb.MsgData.RecvID = v + isSend := modifyMessageByUserMessageReceiveOpt(v, groupID, constant.GroupChatType, pb) if isSend { msgToMQ.MsgData = pb.MsgData - err := rpc.sendMsgToKafka(&msgToMQ, v.UserID) + err := rpc.sendMsgToKafka(&msgToMQ, v) if err != nil { - log.NewError(msgToMQ.OperationID, "kafka send msg err:UserId", v.UserID, msgToMQ.String()) + log.NewError(msgToMQ.OperationID, "kafka send msg err:UserId", v, msgToMQ.String()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 87eae8d4b..9a66fd919 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -214,6 +214,16 @@ var ContentType2PushContent = map[int64]string{ Common: "你收到一条新消息", } +const ( + RecvMsgOpt = 1 + IsPinned = 2 + AttachedInfo = 3 + IsPrivateChat = 4 + GroupAtType = 5 + IsNotInGroup = 6 + Ex = 7 +) + const ( AppOrdinaryUsers = 1 AppAdmin = 2 diff --git a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go new file mode 100644 index 000000000..2c252222d --- /dev/null +++ b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go @@ -0,0 +1,145 @@ +package im_mysql_model + +import ( + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" +) + +func SetConversation(conversation db.Conversation) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(false) + newConversation := conversation + if dbConn.Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") + return dbConn.Model(&db.Conversation{}).Create(conversation).Error + // if exist, then update record + } else { + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") + //force update + return dbConn.Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). + Update(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt, "is_pinned": conversation.IsPinned, "is_private_chat": conversation.IsPrivateChat, + "group_at_type": conversation.GroupAtType, "is_not_in_group": conversation.IsNotInGroup}).Error + } +} +func SetOneConversation(conversation db.Conversation) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(false) + return dbConn.Model(&db.Conversation{}).Create(conversation).Error + +} + +func PeerUserSetConversation(conversation db.Conversation) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(false) + newConversation := conversation + if dbConn.Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") + return dbConn.Model(&db.Conversation{}).Create(conversation).Error + // if exist, then update record + } + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") + //force update + return dbConn.Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). + Update(map[string]interface{}{"is_private_chat": conversation.IsPrivateChat}).Error + +} + +func SetRecvMsgOpt(conversation db.Conversation) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(false) + newConversation := conversation + if dbConn.Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") + return dbConn.Model(&db.Conversation{}).Create(conversation).Error + // if exist, then update record + } else { + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") + //force update + return dbConn.Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). + Update(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt}).Error + } +} + +func GetUserAllConversations(ownerUserID string) ([]db.Conversation, error) { + var conversations []db.Conversation + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return conversations, err + } + dbConn.LogMode(false) + err = dbConn.Model(&db.Conversation{}).Where("owner_user_id=?", ownerUserID).Find(&conversations).Error + return conversations, err +} +func GetMultipleUserConversationByConversationID(ownerUserIDList []string, conversationID string) ([]db.Conversation, error) { + var conversations []db.Conversation + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return conversations, err + } + dbConn.LogMode(false) + err = dbConn.Model(&db.Conversation{}).Where("owner_user_id IN ? and conversation_id=?", ownerUserIDList, conversationID).Find(&conversations).Error + return conversations, err +} +func GetExistConversationUserIDList(conversationID string) ([]string, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return nil, err + } + var resultArr []string + err = dbConn.Table("conversations").Where(" conversation_id=?", conversationID).Pluck("owner_user_id", &resultArr).Error + if err != nil { + return nil, err + } + return resultArr, nil +} + +func GetConversation(OwnerUserID, conversationID string) (db.Conversation, error) { + var conversation db.Conversation + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return conversation, err + } + err = dbConn.Table("conversations").Where("owner_user_id=? and conversation_id=?", OwnerUserID, conversationID).Take(&conversation).Error + return conversation, err +} + +func GetConversations(OwnerUserID string, conversationIDs []string) ([]db.Conversation, error) { + var conversations []db.Conversation + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return conversations, err + } + err = dbConn.Model(&db.Conversation{}).Where("conversation_id IN (?) and owner_user_id=?", conversationIDs, OwnerUserID).Find(&conversations).Error + return conversations, err +} +func GetConversationsByConversationIDMultipleOwner(OwnerUserIDList []string, conversationID string) ([]db.Conversation, error) { + var conversations []db.Conversation + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return conversations, err + } + err = dbConn.Model(&db.Conversation{}).Where("owner_user_id IN (?) and conversation_id=?", OwnerUserIDList, conversationID).Find(&conversations).Error + return conversations, err +} +func UpdateColumnsConversations(ownerUserIDList []string, conversationID string, args map[string]interface{}) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(false) + return dbConn.Model(&db.Conversation{}).Where("owner_user_id IN ? and conversation_id=?", ownerUserIDList, conversationID).Updates(args).Error + +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 5e805686d..c519ec2d0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -4,7 +4,6 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "fmt" "time" @@ -305,101 +304,3 @@ func GetBlockUsersNumCount() (int32, error) { } return count, nil } - -func SetConversation(conversation db.Conversation) error { - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return err - } - dbConn.LogMode(false) - newConversation := conversation - if dbConn.Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { - log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") - return dbConn.Model(&db.Conversation{}).Create(conversation).Error - // if exist, then update record - } else { - log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") - //force update - return dbConn.Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). - Update(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt, "is_pinned": conversation.IsPinned, "is_private_chat": conversation.IsPrivateChat, - "group_at_type": conversation.GroupAtType, "is_not_in_group": conversation.IsNotInGroup}).Error - } -} - -func PeerUserSetConversation(conversation db.Conversation) error { - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return err - } - dbConn.LogMode(false) - newConversation := conversation - if dbConn.Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { - log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") - return dbConn.Model(&db.Conversation{}).Create(conversation).Error - // if exist, then update record - } - log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") - //force update - return dbConn.Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). - Update(map[string]interface{}{"is_private_chat": conversation.IsPrivateChat}).Error - -} - -func SetRecvMsgOpt(conversation db.Conversation) error { - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return err - } - dbConn.LogMode(false) - newConversation := conversation - if dbConn.Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { - log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") - return dbConn.Model(&db.Conversation{}).Create(conversation).Error - // if exist, then update record - } else { - log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") - //force update - return dbConn.Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). - Update(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt}).Error - } -} - -func GetUserAllConversations(ownerUserID string) ([]db.Conversation, error) { - var conversations []db.Conversation - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return conversations, err - } - dbConn.LogMode(false) - err = dbConn.Model(&db.Conversation{}).Where("owner_user_id=?", ownerUserID).Find(&conversations).Error - return conversations, err -} - -func GetConversation(OwnerUserID, conversationID string) (db.Conversation, error) { - var conversation db.Conversation - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return conversation, err - } - err = dbConn.Table("conversations").Where("owner_user_id=? and conversation_id=?", OwnerUserID, conversationID).Take(&conversation).Error - return conversation, err -} - -func GetConversations(OwnerUserID string, conversationIDs []string) ([]db.Conversation, error) { - var conversations []db.Conversation - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return conversations, err - } - err = dbConn.Model(&db.Conversation{}).Where("conversation_id IN (?) and owner_user_id=?", conversationIDs, OwnerUserID).Find(&conversations).Error - return conversations, err -} -func GetConversationsByConversationIDMultipleOwner(OwnerUserIDList []string, conversationID string) ([]db.Conversation, error) { - var conversations []db.Conversation - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return conversations, err - } - err = dbConn.Model(&db.Conversation{}).Where("owner_user_id IN (?) and conversation_id=?", OwnerUserIDList, conversationID).Find(&conversations).Error - return conversations, err -} diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 582686707..2f5ca5e67 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -40,7 +40,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{0} + return fileDescriptor_ws_8b0ea2633e539530, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -165,7 +165,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{1} + return fileDescriptor_ws_8b0ea2633e539530, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -277,7 +277,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{2} + return fileDescriptor_ws_8b0ea2633e539530, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -352,7 +352,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{3} + return fileDescriptor_ws_8b0ea2633e539530, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -459,7 +459,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{4} + return fileDescriptor_ws_8b0ea2633e539530, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -544,7 +544,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{5} + return fileDescriptor_ws_8b0ea2633e539530, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -625,7 +625,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{6} + return fileDescriptor_ws_8b0ea2633e539530, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -733,7 +733,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{7} + return fileDescriptor_ws_8b0ea2633e539530, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -878,7 +878,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{8} + return fileDescriptor_ws_8b0ea2633e539530, []int{8} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -989,7 +989,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{9} + return fileDescriptor_ws_8b0ea2633e539530, []int{9} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1103,7 +1103,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{10} + return fileDescriptor_ws_8b0ea2633e539530, []int{10} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1184,7 +1184,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{11} + return fileDescriptor_ws_8b0ea2633e539530, []int{11} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1230,7 +1230,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{12} + return fileDescriptor_ws_8b0ea2633e539530, []int{12} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1277,7 +1277,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{13} + return fileDescriptor_ws_8b0ea2633e539530, []int{13} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1331,7 +1331,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{14} + return fileDescriptor_ws_8b0ea2633e539530, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1382,7 +1382,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_ws_0aa1613bcc1a3980, []int{15} + return fileDescriptor_ws_8b0ea2633e539530, []int{15} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1414,7 +1414,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_ws_0aa1613bcc1a3980, []int{16} + return fileDescriptor_ws_8b0ea2633e539530, []int{16} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1461,7 +1461,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{17} + return fileDescriptor_ws_8b0ea2633e539530, []int{17} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1521,6 +1521,7 @@ type MsgData struct { Status int32 `protobuf:"varint,17,opt,name=status" json:"status,omitempty"` Options map[string]bool `protobuf:"bytes,18,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + AtUserIDList []string `protobuf:"bytes,20,rep,name=atUserIDList" json:"atUserIDList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1530,7 +1531,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{18} + return fileDescriptor_ws_8b0ea2633e539530, []int{18} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1676,7 +1677,13 @@ func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { return nil } -// repeated string atUserIDList = 17; +func (m *MsgData) GetAtUserIDList() []string { + if m != nil { + return m.AtUserIDList + } + return nil +} + type OfflinePushInfo struct { Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` Desc string `protobuf:"bytes,2,opt,name=desc" json:"desc,omitempty"` @@ -1692,7 +1699,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{19} + return fileDescriptor_ws_8b0ea2633e539530, []int{19} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1760,7 +1767,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{20} + return fileDescriptor_ws_8b0ea2633e539530, []int{20} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1817,7 +1824,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{21} + return fileDescriptor_ws_8b0ea2633e539530, []int{21} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1886,7 +1893,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{22} + return fileDescriptor_ws_8b0ea2633e539530, []int{22} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1941,7 +1948,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{23} + return fileDescriptor_ws_8b0ea2633e539530, []int{23} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1997,7 +2004,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{24} + return fileDescriptor_ws_8b0ea2633e539530, []int{24} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2052,7 +2059,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{25} + return fileDescriptor_ws_8b0ea2633e539530, []int{25} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2107,7 +2114,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{26} + return fileDescriptor_ws_8b0ea2633e539530, []int{26} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2163,7 +2170,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{27} + return fileDescriptor_ws_8b0ea2633e539530, []int{27} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2226,7 +2233,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{28} + return fileDescriptor_ws_8b0ea2633e539530, []int{28} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2289,7 +2296,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{29} + return fileDescriptor_ws_8b0ea2633e539530, []int{29} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2351,7 +2358,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{30} + return fileDescriptor_ws_8b0ea2633e539530, []int{30} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2405,7 +2412,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{31} + return fileDescriptor_ws_8b0ea2633e539530, []int{31} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2461,7 +2468,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{32} + return fileDescriptor_ws_8b0ea2633e539530, []int{32} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2530,7 +2537,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{33} + return fileDescriptor_ws_8b0ea2633e539530, []int{33} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2591,7 +2598,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{34} + return fileDescriptor_ws_8b0ea2633e539530, []int{34} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -2645,7 +2652,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{35} + return fileDescriptor_ws_8b0ea2633e539530, []int{35} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -2700,7 +2707,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{36} + return fileDescriptor_ws_8b0ea2633e539530, []int{36} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -2760,7 +2767,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{37} + return fileDescriptor_ws_8b0ea2633e539530, []int{37} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -2807,7 +2814,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{38} + return fileDescriptor_ws_8b0ea2633e539530, []int{38} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2860,7 +2867,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{39} + return fileDescriptor_ws_8b0ea2633e539530, []int{39} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2906,7 +2913,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{40} + return fileDescriptor_ws_8b0ea2633e539530, []int{40} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2946,7 +2953,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{41} + return fileDescriptor_ws_8b0ea2633e539530, []int{41} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2993,7 +3000,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{42} + return fileDescriptor_ws_8b0ea2633e539530, []int{42} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3041,7 +3048,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{43} + return fileDescriptor_ws_8b0ea2633e539530, []int{43} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3094,7 +3101,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{44} + return fileDescriptor_ws_8b0ea2633e539530, []int{44} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3132,7 +3139,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{45} + return fileDescriptor_ws_8b0ea2633e539530, []int{45} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3170,7 +3177,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{46} + return fileDescriptor_ws_8b0ea2633e539530, []int{46} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3208,7 +3215,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{47} + return fileDescriptor_ws_8b0ea2633e539530, []int{47} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3247,7 +3254,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{48} + return fileDescriptor_ws_8b0ea2633e539530, []int{48} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3286,7 +3293,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{49} + return fileDescriptor_ws_8b0ea2633e539530, []int{49} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3326,7 +3333,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{50} + return fileDescriptor_ws_8b0ea2633e539530, []int{50} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3380,7 +3387,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{51} + return fileDescriptor_ws_8b0ea2633e539530, []int{51} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3426,7 +3433,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{52} + return fileDescriptor_ws_8b0ea2633e539530, []int{52} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3479,7 +3486,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{53} + return fileDescriptor_ws_8b0ea2633e539530, []int{53} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -3746,7 +3753,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{54} + return fileDescriptor_ws_8b0ea2633e539530, []int{54} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4014,7 +4021,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{55} + return fileDescriptor_ws_8b0ea2633e539530, []int{55} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4110,7 +4117,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{56} + return fileDescriptor_ws_8b0ea2633e539530, []int{56} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4165,7 +4172,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{57} + return fileDescriptor_ws_8b0ea2633e539530, []int{57} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4226,7 +4233,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{58} + return fileDescriptor_ws_8b0ea2633e539530, []int{58} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4281,7 +4288,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{59} + return fileDescriptor_ws_8b0ea2633e539530, []int{59} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4342,7 +4349,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{60} + return fileDescriptor_ws_8b0ea2633e539530, []int{60} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4397,7 +4404,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{61} + return fileDescriptor_ws_8b0ea2633e539530, []int{61} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4455,7 +4462,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{62} + return fileDescriptor_ws_8b0ea2633e539530, []int{62} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -4490,7 +4497,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{63} + return fileDescriptor_ws_8b0ea2633e539530, []int{63} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -4558,7 +4565,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{64} + return fileDescriptor_ws_8b0ea2633e539530, []int{64} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -4612,7 +4619,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{65} + return fileDescriptor_ws_8b0ea2633e539530, []int{65} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -4663,7 +4670,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{66} + return fileDescriptor_ws_8b0ea2633e539530, []int{66} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -4698,7 +4705,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{67} + return fileDescriptor_ws_8b0ea2633e539530, []int{67} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -4763,7 +4770,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{68} + return fileDescriptor_ws_8b0ea2633e539530, []int{68} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -4797,7 +4804,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{69} + return fileDescriptor_ws_8b0ea2633e539530, []int{69} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -4857,7 +4864,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0aa1613bcc1a3980, []int{70} + return fileDescriptor_ws_8b0ea2633e539530, []int{70} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -4966,198 +4973,199 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_0aa1613bcc1a3980) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_8b0ea2633e539530) } -var fileDescriptor_ws_0aa1613bcc1a3980 = []byte{ - // 3033 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x6f, 0x24, 0x47, - 0xf5, 0xff, 0x76, 0x8f, 0x67, 0xec, 0x79, 0xe3, 0xf1, 0x8f, 0xde, 0xfd, 0x3a, 0x83, 0xd9, 0x2c, - 0xa6, 0xb1, 0x42, 0x08, 0xb0, 0x41, 0x89, 0x90, 0x20, 0x81, 0x45, 0x6b, 0x7b, 0x7f, 0x85, 0xb5, - 0xd7, 0xe9, 0xd9, 0x25, 0x08, 0x90, 0xa2, 0xf6, 0x74, 0x79, 0xdc, 0x71, 0x77, 0x55, 0x4f, 0xff, - 0xf0, 0xee, 0x22, 0x24, 0x24, 0x90, 0x10, 0x37, 0x4e, 0x70, 0xe0, 0x82, 0xc4, 0x05, 0x81, 0xa2, - 0x28, 0x42, 0x20, 0x71, 0x88, 0x10, 0x07, 0xfe, 0x01, 0x8e, 0x88, 0x1b, 0x67, 0xae, 0x1c, 0x90, - 0x90, 0x40, 0x55, 0xaf, 0xba, 0xbb, 0xaa, 0x7b, 0xc6, 0x9e, 0x1d, 0x59, 0xd9, 0x8d, 0x96, 0xdb, - 0xbc, 0xd7, 0xf5, 0x5e, 0xbd, 0xfa, 0xbc, 0x57, 0xf5, 0x5e, 0xfd, 0x18, 0x58, 0x4e, 0xbc, 0xe3, - 0xb7, 0x1f, 0x24, 0x2f, 0x3f, 0x48, 0xae, 0x44, 0x31, 0x4b, 0x99, 0xb5, 0x9a, 0x90, 0xf8, 0x84, - 0xc4, 0x6f, 0xbb, 0x91, 0xff, 0x76, 0xe4, 0xc6, 0x6e, 0x98, 0xd8, 0xff, 0x34, 0xa1, 0x7d, 0x33, - 0x66, 0x59, 0x74, 0x9b, 0x1e, 0x32, 0xab, 0x07, 0xf3, 0x43, 0x41, 0xec, 0xf4, 0x8c, 0x0d, 0xe3, - 0xc5, 0xb6, 0x93, 0x93, 0xd6, 0x25, 0x68, 0x8b, 0x9f, 0x7b, 0x6e, 0x48, 0x7a, 0xa6, 0xf8, 0x56, - 0x32, 0x2c, 0x1b, 0x16, 0x29, 0x4b, 0xfd, 0x43, 0x7f, 0xe0, 0xa6, 0x3e, 0xa3, 0xbd, 0x86, 0x68, - 0xa0, 0xf1, 0x78, 0x1b, 0x9f, 0xa6, 0x31, 0xf3, 0xb2, 0x81, 0x68, 0x33, 0x87, 0x6d, 0x54, 0x1e, - 0xef, 0xff, 0xd0, 0x1d, 0x90, 0xfb, 0xce, 0x9d, 0x5e, 0x13, 0xfb, 0x97, 0xa4, 0xb5, 0x01, 0x1d, - 0xf6, 0x80, 0x92, 0xf8, 0x7e, 0x42, 0xe2, 0xdb, 0x3b, 0xbd, 0x96, 0xf8, 0xaa, 0xb2, 0xac, 0xcb, - 0x00, 0x83, 0x98, 0xb8, 0x29, 0xb9, 0xe7, 0x87, 0xa4, 0x37, 0xbf, 0x61, 0xbc, 0xd8, 0x75, 0x14, - 0x0e, 0xd7, 0x10, 0x92, 0xf0, 0x80, 0xc4, 0xdb, 0x2c, 0xa3, 0x69, 0x6f, 0x41, 0x34, 0x50, 0x59, - 0xd6, 0x12, 0x98, 0xe4, 0x61, 0xaf, 0x2d, 0x54, 0x9b, 0xe4, 0xa1, 0xb5, 0x06, 0xad, 0x24, 0x75, - 0xd3, 0x2c, 0xe9, 0xc1, 0x86, 0xf1, 0x62, 0xd3, 0x91, 0x94, 0xb5, 0x09, 0x5d, 0xa1, 0x97, 0xe5, - 0xd6, 0x74, 0x84, 0x88, 0xce, 0x2c, 0x10, 0xbb, 0xf7, 0x28, 0x22, 0xbd, 0x45, 0xa1, 0xa0, 0x64, - 0xd8, 0x7f, 0x35, 0xe1, 0x82, 0xc0, 0x7d, 0x57, 0x18, 0x70, 0x23, 0x0b, 0x82, 0x33, 0x3c, 0xb0, - 0x06, 0xad, 0x0c, 0xbb, 0x43, 0xf8, 0x25, 0xc5, 0xfb, 0x89, 0x59, 0x40, 0xee, 0x90, 0x13, 0x12, - 0x08, 0xe0, 0x9b, 0x4e, 0xc9, 0xb0, 0xd6, 0x61, 0xe1, 0x1d, 0xe6, 0x53, 0x81, 0xc9, 0x9c, 0xf8, - 0x58, 0xd0, 0xfc, 0x1b, 0xf5, 0x07, 0xc7, 0x94, 0xbb, 0x14, 0xe1, 0x2e, 0x68, 0xd5, 0x13, 0x2d, - 0xdd, 0x13, 0x2f, 0xc0, 0x92, 0x1b, 0x45, 0xbb, 0x2e, 0x1d, 0x92, 0x18, 0x3b, 0x9d, 0x17, 0x7a, - 0x2b, 0x5c, 0xee, 0x0f, 0xde, 0x53, 0x9f, 0x65, 0xf1, 0x80, 0x08, 0xb8, 0x9b, 0x8e, 0xc2, 0xe1, - 0x7a, 0x58, 0x44, 0x62, 0x05, 0x46, 0x44, 0xbe, 0xc2, 0x95, 0x5e, 0x81, 0xc2, 0x2b, 0xdc, 0x8f, - 0x59, 0x4a, 0xae, 0x53, 0x4f, 0x0c, 0xaa, 0x23, 0xfd, 0x58, 0xb2, 0xec, 0x1f, 0x19, 0xb0, 0xb4, - 0x9f, 0x1d, 0x04, 0xfe, 0x40, 0xa8, 0xe0, 0xb0, 0x96, 0xe0, 0x19, 0x1a, 0x78, 0x2a, 0x04, 0xe6, - 0x64, 0x08, 0x1a, 0x3a, 0x04, 0x6b, 0xd0, 0x1a, 0x12, 0xea, 0x91, 0x58, 0x42, 0x2a, 0x29, 0x69, - 0x6a, 0x33, 0x37, 0xd5, 0xfe, 0x99, 0x09, 0x0b, 0x1f, 0xb2, 0x09, 0x1b, 0xd0, 0x89, 0x8e, 0x18, - 0x25, 0x7b, 0x19, 0x0f, 0x2b, 0x69, 0x8b, 0xca, 0xb2, 0x2e, 0x42, 0xf3, 0xc0, 0x8f, 0xd3, 0x23, - 0xe1, 0xd7, 0xae, 0x83, 0x04, 0xe7, 0x92, 0xd0, 0xf5, 0xd1, 0x99, 0x6d, 0x07, 0x09, 0x39, 0xa0, - 0x85, 0x02, 0x7b, 0x7d, 0x8e, 0xb5, 0x6b, 0x73, 0xac, 0x1e, 0x1b, 0x30, 0x2e, 0x36, 0xec, 0x7f, - 0x19, 0x00, 0x37, 0x62, 0x9f, 0x50, 0x4f, 0x40, 0x53, 0x99, 0xdc, 0x46, 0x7d, 0x72, 0xaf, 0x41, - 0x2b, 0x26, 0xa1, 0x1b, 0x1f, 0xe7, 0xc1, 0x8f, 0x54, 0xc5, 0xa0, 0x46, 0xcd, 0xa0, 0xd7, 0x01, - 0x0e, 0x45, 0x3f, 0x5c, 0x8f, 0x80, 0xaa, 0xf3, 0xca, 0xc7, 0xaf, 0xd4, 0x96, 0xc1, 0x2b, 0xb9, - 0x97, 0x1c, 0xa5, 0x39, 0x9f, 0x59, 0xae, 0xe7, 0xc9, 0x00, 0x6e, 0xe2, 0xcc, 0x2a, 0x18, 0x63, - 0xe2, 0xb7, 0x75, 0x4a, 0xfc, 0xce, 0x17, 0x41, 0xf1, 0x0f, 0x03, 0xda, 0x5b, 0x81, 0x3b, 0x38, - 0x9e, 0x72, 0xe8, 0xfa, 0x10, 0xcd, 0xda, 0x10, 0x6f, 0x42, 0xf7, 0x80, 0xab, 0xcb, 0x87, 0x20, - 0x50, 0xe8, 0xbc, 0xf2, 0xc9, 0x31, 0xa3, 0xd4, 0x27, 0x85, 0xa3, 0xcb, 0xe9, 0xc3, 0x9d, 0x3b, - 0x7b, 0xb8, 0xcd, 0x53, 0x86, 0xdb, 0x2a, 0x86, 0xfb, 0x17, 0x13, 0x16, 0xc5, 0x42, 0xe7, 0x90, - 0x51, 0x46, 0x92, 0xd4, 0xfa, 0x2a, 0x2c, 0x64, 0xb9, 0xa9, 0xc6, 0xb4, 0xa6, 0x16, 0x22, 0xd6, - 0x6b, 0x72, 0x59, 0x15, 0xf2, 0xa6, 0x90, 0xbf, 0x34, 0x46, 0xbe, 0xc8, 0x69, 0x4e, 0xd9, 0x9c, - 0xa7, 0xa0, 0x23, 0x97, 0x7a, 0x01, 0x71, 0x48, 0x92, 0x05, 0xa9, 0x5c, 0x2d, 0x35, 0x1e, 0x46, - 0xda, 0x68, 0x37, 0x19, 0xca, 0x04, 0x25, 0x29, 0x8e, 0x0e, 0xb6, 0xe3, 0x9f, 0x70, 0xe8, 0x25, - 0x83, 0x4f, 0xd4, 0x98, 0x8c, 0x84, 0x87, 0x70, 0x5a, 0xe5, 0x64, 0xd9, 0xa7, 0x44, 0x0d, 0x03, - 0x41, 0xe3, 0x71, 0x17, 0x23, 0x2d, 0x14, 0x60, 0x66, 0x52, 0x38, 0xd5, 0xc4, 0x64, 0xff, 0xad, - 0x01, 0x5d, 0x9c, 0x3e, 0x39, 0xa8, 0x97, 0x79, 0x9c, 0xb3, 0x50, 0x8b, 0x22, 0x85, 0xc3, 0xad, - 0xe0, 0xd4, 0x9e, 0xbe, 0xd0, 0x68, 0x3c, 0x1e, 0x8a, 0x9c, 0xbe, 0xa1, 0x2d, 0x38, 0x2a, 0x2b, - 0xef, 0xe5, 0xa6, 0xba, 0xf0, 0x28, 0x1c, 0xbe, 0x94, 0xa5, 0x4c, 0x8b, 0x8e, 0x82, 0xe6, 0xb2, - 0x29, 0x2b, 0xfa, 0xc7, 0xf8, 0x50, 0x38, 0x1c, 0xdf, 0x94, 0xe5, 0x7d, 0x23, 0x48, 0x25, 0x03, - 0x35, 0xcb, 0x7e, 0x31, 0x95, 0x14, 0x74, 0xcd, 0xab, 0xed, 0x53, 0xbd, 0x0a, 0x9a, 0x57, 0xf5, - 0xc9, 0xd5, 0xa9, 0x4d, 0xae, 0x4d, 0xe8, 0xa2, 0x9e, 0x3c, 0xe8, 0x17, 0x31, 0xd5, 0x6b, 0x4c, - 0x3d, 0x36, 0xba, 0xd5, 0xd8, 0xd0, 0xbd, 0xbb, 0x34, 0xc1, 0xbb, 0xcb, 0x85, 0x77, 0x7f, 0x6b, - 0x02, 0xec, 0x90, 0xc8, 0x8d, 0xd3, 0x90, 0xd0, 0x94, 0x0f, 0xcf, 0x2b, 0xa8, 0xc2, 0xb9, 0x1a, - 0x4f, 0xcd, 0x13, 0xa6, 0x9e, 0x27, 0x2c, 0x98, 0x13, 0x80, 0xa3, 0x37, 0xc5, 0x6f, 0x0e, 0x66, - 0xe4, 0xc6, 0xa8, 0x0d, 0x83, 0xbc, 0xa0, 0x79, 0x1e, 0x60, 0xb1, 0x27, 0x33, 0x47, 0xd3, 0x41, - 0x82, 0x4f, 0xfe, 0xb2, 0x3f, 0x51, 0xd0, 0xb4, 0x70, 0x5d, 0xd7, 0xb9, 0x67, 0xd6, 0x60, 0x2f, - 0xc1, 0x4a, 0x92, 0x1d, 0x94, 0x83, 0xdb, 0xcb, 0x42, 0x19, 0xee, 0x35, 0x3e, 0x07, 0x15, 0x8b, - 0x33, 0xde, 0x08, 0x53, 0x4d, 0xc9, 0xa8, 0x56, 0x05, 0xf6, 0xbb, 0x26, 0xac, 0xdc, 0x8d, 0x87, - 0x2e, 0xf5, 0xbf, 0x2b, 0xca, 0x4d, 0xb1, 0x80, 0xcf, 0x92, 0x72, 0x37, 0xa0, 0x43, 0xe8, 0x30, - 0xf0, 0x93, 0xa3, 0xbd, 0x12, 0x37, 0x95, 0xa5, 0x82, 0x3d, 0x37, 0x29, 0x29, 0x37, 0xb5, 0xa4, - 0xbc, 0x06, 0xad, 0x90, 0x1d, 0xf8, 0x41, 0x1e, 0xf7, 0x92, 0x12, 0x31, 0x4f, 0x02, 0x22, 0xb2, - 0x73, 0x11, 0xf3, 0x39, 0xa3, 0x4c, 0xd4, 0x0b, 0x63, 0x13, 0x75, 0x5b, 0x4d, 0xd4, 0x3a, 0xf0, - 0x50, 0x03, 0x1e, 0xe1, 0xea, 0x14, 0x70, 0xfd, 0xc9, 0x80, 0x95, 0x12, 0x6e, 0xac, 0x41, 0x27, - 0xc2, 0x55, 0x8d, 0x40, 0x73, 0x4c, 0x04, 0x16, 0x71, 0xd3, 0x50, 0xe3, 0x86, 0x47, 0x1a, 0x4b, - 0x7c, 0xa5, 0xde, 0x2f, 0x68, 0xde, 0x5b, 0x40, 0x5c, 0x05, 0x2c, 0xa4, 0x94, 0xaa, 0xbb, 0xa5, - 0x55, 0xdd, 0xd5, 0x3c, 0xfa, 0x07, 0x03, 0x2e, 0x72, 0x2f, 0xd7, 0x86, 0x71, 0x17, 0x56, 0x58, - 0x25, 0x12, 0x64, 0xa2, 0xf9, 0xd4, 0x98, 0x44, 0x51, 0x0d, 0x1a, 0xa7, 0x26, 0xcc, 0x15, 0x7a, - 0x95, 0x4e, 0x64, 0xe6, 0x19, 0xa7, 0xb0, 0x6a, 0x8f, 0x53, 0x13, 0xb6, 0x3f, 0x30, 0x60, 0x05, - 0x53, 0x9b, 0x32, 0xcf, 0xcf, 0xdd, 0xec, 0xb7, 0xe0, 0x62, 0xb5, 0xe7, 0x3b, 0x7e, 0x92, 0xf6, - 0xcc, 0x8d, 0xc6, 0xb4, 0xa6, 0x8f, 0x55, 0x60, 0x7f, 0x0f, 0x7a, 0xfb, 0x59, 0x10, 0xec, 0x92, - 0x24, 0x71, 0x87, 0x64, 0xeb, 0x51, 0x9f, 0x8c, 0x38, 0xdf, 0x21, 0x49, 0xc4, 0x27, 0x07, 0x89, - 0xe3, 0x6d, 0xe6, 0x11, 0x61, 0x7c, 0xd3, 0xc9, 0x49, 0xee, 0x57, 0x12, 0xc7, 0x7c, 0x85, 0x94, - 0x25, 0x1c, 0x52, 0xd6, 0x15, 0x98, 0x0b, 0xb8, 0x59, 0x0d, 0x61, 0xd6, 0xfa, 0x18, 0xb3, 0x76, - 0x93, 0xe1, 0x8e, 0x9b, 0xba, 0x8e, 0x68, 0x67, 0x87, 0xf0, 0xdc, 0xf8, 0xde, 0x47, 0x13, 0x03, - 0x98, 0x17, 0x59, 0xa2, 0x4a, 0xf1, 0x19, 0x2d, 0xe2, 0x57, 0x65, 0x71, 0xb3, 0x13, 0xd4, 0x23, - 0xec, 0xe8, 0x3a, 0x39, 0x69, 0x5f, 0x04, 0xeb, 0x26, 0x49, 0x77, 0xdd, 0x87, 0xd7, 0xa8, 0xb7, - 0xeb, 0xd3, 0x3e, 0x19, 0x39, 0x64, 0x64, 0x5f, 0x87, 0x0b, 0x35, 0x6e, 0x12, 0x89, 0x89, 0xee, - 0x3e, 0xec, 0x93, 0x91, 0x30, 0xa0, 0xeb, 0x48, 0x4a, 0xf0, 0x45, 0x2b, 0x59, 0xbf, 0x49, 0xca, - 0x1e, 0xc1, 0x32, 0x77, 0x55, 0x9f, 0x50, 0x6f, 0x37, 0x19, 0x0a, 0x15, 0x1b, 0xd0, 0x41, 0x04, - 0x76, 0x93, 0x61, 0x59, 0x10, 0x2a, 0x2c, 0xde, 0x62, 0x10, 0xf8, 0xdc, 0x25, 0xa2, 0x85, 0x1c, - 0x8d, 0xc2, 0xe2, 0xd3, 0x2e, 0x21, 0x72, 0x7f, 0xc4, 0xe7, 0x63, 0xc3, 0x29, 0x68, 0xfb, 0x83, - 0x26, 0xcc, 0x4b, 0x40, 0xc5, 0x54, 0xe3, 0x35, 0x78, 0x81, 0x17, 0x52, 0x98, 0x2d, 0x07, 0x27, - 0xe5, 0x56, 0x13, 0x29, 0x75, 0x73, 0xda, 0xd0, 0x37, 0xa7, 0x15, 0x9b, 0xe6, 0xea, 0x36, 0x55, - 0xc6, 0xd5, 0xac, 0x8f, 0x8b, 0x27, 0x07, 0xb1, 0x5e, 0xee, 0x07, 0x6e, 0x7a, 0xc8, 0xe2, 0x50, - 0x96, 0xd4, 0x4d, 0xa7, 0xc6, 0xe7, 0x09, 0x09, 0x79, 0x45, 0x45, 0x81, 0x0b, 0x43, 0x85, 0xcb, - 0xf3, 0x37, 0x72, 0xf2, 0xca, 0x02, 0xf7, 0x32, 0x3a, 0x13, 0x6d, 0x4b, 0x12, 0x9f, 0x51, 0x91, - 0xdb, 0xb0, 0x80, 0x50, 0x59, 0x7c, 0xe4, 0x61, 0x32, 0xbc, 0x11, 0xb3, 0x50, 0xee, 0x68, 0x72, - 0x52, 0x8c, 0x9c, 0xd1, 0x34, 0xcf, 0x8b, 0x1d, 0x94, 0x55, 0x58, 0x5c, 0x56, 0x92, 0xa2, 0x7a, - 0x58, 0x74, 0x72, 0xd2, 0x5a, 0x81, 0x46, 0x42, 0x46, 0xb2, 0x24, 0xe0, 0x3f, 0x35, 0xcf, 0x2d, - 0xeb, 0x9e, 0xab, 0xac, 0xf1, 0x2b, 0xe2, 0xab, 0xba, 0xc6, 0x97, 0x0b, 0xe7, 0xaa, 0xb6, 0x70, - 0x5e, 0x83, 0x79, 0x16, 0xf1, 0x38, 0x4f, 0x7a, 0x96, 0x98, 0x63, 0x9f, 0x9e, 0x3c, 0xc7, 0xae, - 0xdc, 0xc5, 0x96, 0xd7, 0x69, 0x1a, 0x3f, 0x72, 0x72, 0x39, 0xeb, 0x0e, 0x2c, 0xb3, 0xc3, 0xc3, - 0xc0, 0xa7, 0x64, 0x3f, 0x4b, 0x8e, 0x44, 0xe9, 0x7d, 0x41, 0x2c, 0x4d, 0xf6, 0xb8, 0xa5, 0x49, - 0x6f, 0xe9, 0x54, 0x45, 0xd7, 0x5f, 0x83, 0x45, 0xb5, 0x1b, 0x0e, 0xc3, 0x31, 0x79, 0x24, 0x63, - 0x90, 0xff, 0xe4, 0xd9, 0xe4, 0xc4, 0x0d, 0x32, 0xcc, 0xce, 0x0b, 0x0e, 0x12, 0xaf, 0x99, 0x5f, - 0x32, 0xec, 0x9f, 0x1a, 0xb0, 0x5c, 0xe9, 0x80, 0xb7, 0x4e, 0xfd, 0x34, 0x20, 0x52, 0x03, 0x12, - 0xbc, 0xf2, 0xf1, 0x48, 0x32, 0x90, 0x21, 0x2c, 0x7e, 0xcb, 0x1c, 0xd2, 0x28, 0xf6, 0xb3, 0x36, - 0x2c, 0xfa, 0x77, 0xfb, 0x5c, 0x51, 0x9f, 0x65, 0xd4, 0x2b, 0xce, 0xa4, 0x14, 0x1e, 0x0f, 0x21, - 0xff, 0x6e, 0x7f, 0xcb, 0xf5, 0x86, 0x04, 0x4f, 0x8e, 0x9a, 0xc2, 0x26, 0x9d, 0x69, 0x7b, 0xb0, - 0x70, 0xcf, 0x8f, 0x92, 0x6d, 0x16, 0x86, 0xdc, 0x11, 0x1e, 0x49, 0x79, 0x8e, 0x36, 0x84, 0xbf, - 0x25, 0xc5, 0x43, 0xc5, 0x23, 0x87, 0x6e, 0x16, 0xa4, 0xbc, 0x69, 0x3e, 0x71, 0x15, 0x96, 0x38, - 0x33, 0x49, 0x18, 0xdd, 0x41, 0x69, 0xb4, 0x53, 0xe1, 0xd8, 0x7f, 0x36, 0x61, 0x45, 0xec, 0x6c, - 0xb6, 0x85, 0xdb, 0x3d, 0x21, 0xf4, 0x0a, 0x34, 0xc5, 0x34, 0x94, 0xd9, 0xe2, 0xf4, 0xdd, 0x10, - 0x36, 0xb5, 0xae, 0x42, 0x8b, 0x45, 0x22, 0xc5, 0x60, 0x22, 0x7b, 0x61, 0x92, 0x90, 0x7e, 0x3c, - 0xe5, 0x48, 0x29, 0xeb, 0x06, 0x40, 0x58, 0x66, 0x14, 0x5c, 0xba, 0xa7, 0xd5, 0xa1, 0x48, 0x72, - 0x70, 0x8b, 0x65, 0xb8, 0x38, 0xa3, 0x6a, 0x38, 0x3a, 0xd3, 0xda, 0x83, 0x25, 0x61, 0xf6, 0xdd, - 0x7c, 0x5b, 0x2c, 0x7c, 0x30, 0x7d, 0x8f, 0x15, 0x69, 0xfb, 0x97, 0x86, 0x84, 0x91, 0x7f, 0xed, - 0x13, 0xc4, 0xbe, 0x84, 0xc4, 0x98, 0x09, 0x92, 0x75, 0x58, 0x08, 0x33, 0x65, 0x97, 0xde, 0x70, - 0x0a, 0xba, 0x74, 0x51, 0x63, 0x6a, 0x17, 0xd9, 0xbf, 0x32, 0xa0, 0xf7, 0x06, 0xf3, 0xa9, 0xf8, - 0x70, 0x2d, 0x8a, 0x02, 0x79, 0x90, 0x3a, 0xb3, 0xcf, 0xbf, 0x06, 0x6d, 0x17, 0xd5, 0xd0, 0x54, - 0xba, 0x7d, 0x8a, 0x9d, 0x77, 0x29, 0xa3, 0x6c, 0xa2, 0x1a, 0xea, 0x26, 0xca, 0x7e, 0xcf, 0x80, +var fileDescriptor_ws_8b0ea2633e539530 = []byte{ + // 3049 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x24, 0x49, + 0xd1, 0xff, 0xaa, 0xda, 0xdd, 0x76, 0x47, 0xbb, 0xfd, 0xa8, 0x99, 0xcf, 0xdb, 0x98, 0xd9, 0xc1, + 0x14, 0xd6, 0xb2, 0x2c, 0x30, 0x8b, 0x76, 0x85, 0x04, 0xbb, 0x30, 0x68, 0x6c, 0xcf, 0x6b, 0x19, + 0x7b, 0xbc, 0xd5, 0x33, 0x2c, 0x02, 0xa4, 0x55, 0xb9, 0x2b, 0xdd, 0xae, 0x75, 0x55, 0x66, 0x75, + 0x3d, 0x3c, 0x33, 0x08, 0x09, 0x09, 0x24, 0xc4, 0x8d, 0x13, 0x1c, 0xb8, 0x20, 0x71, 0x41, 0xa0, + 0xd5, 0x6a, 0x85, 0x40, 0xe2, 0x80, 0x10, 0x07, 0xfe, 0x01, 0x8e, 0x88, 0x0b, 0xe2, 0xcc, 0x95, + 0x03, 0x12, 0x12, 0x28, 0x33, 0xb2, 0xaa, 0x32, 0xab, 0xba, 0xed, 0x9e, 0x96, 0xb5, 0x33, 0xab, + 0xe1, 0xd6, 0x11, 0x95, 0x11, 0x19, 0xf9, 0x8b, 0xc8, 0x8c, 0xc8, 0x47, 0xc3, 0x72, 0xe2, 0x1d, + 0xbf, 0xfd, 0x20, 0x79, 0xf9, 0x41, 0x72, 0x25, 0x8a, 0x59, 0xca, 0xac, 0xd5, 0x84, 0xc4, 0x27, + 0x24, 0x7e, 0xdb, 0x8d, 0xfc, 0xb7, 0x23, 0x37, 0x76, 0xc3, 0xc4, 0xfe, 0xa7, 0x09, 0xed, 0x9b, + 0x31, 0xcb, 0xa2, 0xdb, 0xf4, 0x90, 0x59, 0x3d, 0x98, 0x1f, 0x0a, 0x62, 0xa7, 0x67, 0x6c, 0x18, + 0x2f, 0xb6, 0x9d, 0x9c, 0xb4, 0x2e, 0x41, 0x5b, 0xfc, 0xdc, 0x73, 0x43, 0xd2, 0x33, 0xc5, 0xb7, + 0x92, 0x61, 0xd9, 0xb0, 0x48, 0x59, 0xea, 0x1f, 0xfa, 0x03, 0x37, 0xf5, 0x19, 0xed, 0x35, 0x44, + 0x03, 0x8d, 0xc7, 0xdb, 0xf8, 0x34, 0x8d, 0x99, 0x97, 0x0d, 0x44, 0x9b, 0x39, 0x6c, 0xa3, 0xf2, + 0x78, 0xff, 0x87, 0xee, 0x80, 0xdc, 0x77, 0xee, 0xf4, 0x9a, 0xd8, 0xbf, 0x24, 0xad, 0x0d, 0xe8, + 0xb0, 0x07, 0x94, 0xc4, 0xf7, 0x13, 0x12, 0xdf, 0xde, 0xe9, 0xb5, 0xc4, 0x57, 0x95, 0x65, 0x5d, + 0x06, 0x18, 0xc4, 0xc4, 0x4d, 0xc9, 0x3d, 0x3f, 0x24, 0xbd, 0xf9, 0x0d, 0xe3, 0xc5, 0xae, 0xa3, + 0x70, 0xb8, 0x86, 0x90, 0x84, 0x07, 0x24, 0xde, 0x66, 0x19, 0x4d, 0x7b, 0x0b, 0xa2, 0x81, 0xca, + 0xb2, 0x96, 0xc0, 0x24, 0x0f, 0x7b, 0x6d, 0xa1, 0xda, 0x24, 0x0f, 0xad, 0x35, 0x68, 0x25, 0xa9, + 0x9b, 0x66, 0x49, 0x0f, 0x36, 0x8c, 0x17, 0x9b, 0x8e, 0xa4, 0xac, 0x4d, 0xe8, 0x0a, 0xbd, 0x2c, + 0xb7, 0xa6, 0x23, 0x44, 0x74, 0x66, 0x81, 0xd8, 0xbd, 0x47, 0x11, 0xe9, 0x2d, 0x0a, 0x05, 0x25, + 0xc3, 0xfe, 0x8b, 0x09, 0x17, 0x04, 0xee, 0xbb, 0xc2, 0x80, 0x1b, 0x59, 0x10, 0x9c, 0xe1, 0x81, + 0x35, 0x68, 0x65, 0xd8, 0x1d, 0xc2, 0x2f, 0x29, 0xde, 0x4f, 0xcc, 0x02, 0x72, 0x87, 0x9c, 0x90, + 0x40, 0x00, 0xdf, 0x74, 0x4a, 0x86, 0xb5, 0x0e, 0x0b, 0xef, 0x30, 0x9f, 0x0a, 0x4c, 0xe6, 0xc4, + 0xc7, 0x82, 0xe6, 0xdf, 0xa8, 0x3f, 0x38, 0xa6, 0xdc, 0xa5, 0x08, 0x77, 0x41, 0xab, 0x9e, 0x68, + 0xe9, 0x9e, 0x78, 0x01, 0x96, 0xdc, 0x28, 0xda, 0x75, 0xe9, 0x90, 0xc4, 0xd8, 0xe9, 0xbc, 0xd0, + 0x5b, 0xe1, 0x72, 0x7f, 0xf0, 0x9e, 0xfa, 0x2c, 0x8b, 0x07, 0x44, 0xc0, 0xdd, 0x74, 0x14, 0x0e, + 0xd7, 0xc3, 0x22, 0x12, 0x2b, 0x30, 0x22, 0xf2, 0x15, 0xae, 0xf4, 0x0a, 0x14, 0x5e, 0xe1, 0x7e, + 0xcc, 0x52, 0x72, 0x9d, 0x7a, 0x62, 0x50, 0x1d, 0xe9, 0xc7, 0x92, 0x65, 0xff, 0xc0, 0x80, 0xa5, + 0xfd, 0xec, 0x20, 0xf0, 0x07, 0x42, 0x05, 0x87, 0xb5, 0x04, 0xcf, 0xd0, 0xc0, 0x53, 0x21, 0x30, + 0x27, 0x43, 0xd0, 0xd0, 0x21, 0x58, 0x83, 0xd6, 0x90, 0x50, 0x8f, 0xc4, 0x12, 0x52, 0x49, 0x49, + 0x53, 0x9b, 0xb9, 0xa9, 0xf6, 0x4f, 0x4c, 0x58, 0xf8, 0x80, 0x4d, 0xd8, 0x80, 0x4e, 0x74, 0xc4, + 0x28, 0xd9, 0xcb, 0x78, 0x58, 0x49, 0x5b, 0x54, 0x96, 0x75, 0x11, 0x9a, 0x07, 0x7e, 0x9c, 0x1e, + 0x09, 0xbf, 0x76, 0x1d, 0x24, 0x38, 0x97, 0x84, 0xae, 0x8f, 0xce, 0x6c, 0x3b, 0x48, 0xc8, 0x01, + 0x2d, 0x14, 0xd8, 0xeb, 0x73, 0xac, 0x5d, 0x9b, 0x63, 0xf5, 0xd8, 0x80, 0x71, 0xb1, 0x61, 0xff, + 0xcb, 0x00, 0xb8, 0x11, 0xfb, 0x84, 0x7a, 0x02, 0x9a, 0xca, 0xe4, 0x36, 0xea, 0x93, 0x7b, 0x0d, + 0x5a, 0x31, 0x09, 0xdd, 0xf8, 0x38, 0x0f, 0x7e, 0xa4, 0x2a, 0x06, 0x35, 0x6a, 0x06, 0xbd, 0x0e, + 0x70, 0x28, 0xfa, 0xe1, 0x7a, 0x04, 0x54, 0x9d, 0x57, 0x3e, 0x7a, 0xa5, 0xb6, 0x0c, 0x5e, 0xc9, + 0xbd, 0xe4, 0x28, 0xcd, 0xf9, 0xcc, 0x72, 0x3d, 0x4f, 0x06, 0x70, 0x13, 0x67, 0x56, 0xc1, 0x18, + 0x13, 0xbf, 0xad, 0x53, 0xe2, 0x77, 0xbe, 0x08, 0x8a, 0x7f, 0x18, 0xd0, 0xde, 0x0a, 0xdc, 0xc1, + 0xf1, 0x94, 0x43, 0xd7, 0x87, 0x68, 0xd6, 0x86, 0x78, 0x13, 0xba, 0x07, 0x5c, 0x5d, 0x3e, 0x04, + 0x81, 0x42, 0xe7, 0x95, 0x8f, 0x8f, 0x19, 0xa5, 0x3e, 0x29, 0x1c, 0x5d, 0x4e, 0x1f, 0xee, 0xdc, + 0xd9, 0xc3, 0x6d, 0x9e, 0x32, 0xdc, 0x56, 0x31, 0xdc, 0x3f, 0x9b, 0xb0, 0x28, 0x16, 0x3a, 0x87, + 0x8c, 0x32, 0x92, 0xa4, 0xd6, 0x97, 0x61, 0x21, 0xcb, 0x4d, 0x35, 0xa6, 0x35, 0xb5, 0x10, 0xb1, + 0x5e, 0x93, 0xcb, 0xaa, 0x90, 0x37, 0x85, 0xfc, 0xa5, 0x31, 0xf2, 0x45, 0x4e, 0x73, 0xca, 0xe6, + 0x3c, 0x05, 0x1d, 0xb9, 0xd4, 0x0b, 0x88, 0x43, 0x92, 0x2c, 0x48, 0xe5, 0x6a, 0xa9, 0xf1, 0x30, + 0xd2, 0x46, 0xbb, 0xc9, 0x50, 0x26, 0x28, 0x49, 0x71, 0x74, 0xb0, 0x1d, 0xff, 0x84, 0x43, 0x2f, + 0x19, 0x7c, 0xa2, 0xc6, 0x64, 0x24, 0x3c, 0x84, 0xd3, 0x2a, 0x27, 0xcb, 0x3e, 0x25, 0x6a, 0x18, + 0x08, 0x1a, 0x8f, 0xbb, 0x18, 0x69, 0xa1, 0x00, 0x33, 0x93, 0xc2, 0xa9, 0x26, 0x26, 0xfb, 0xaf, + 0x0d, 0xe8, 0xe2, 0xf4, 0xc9, 0x41, 0xbd, 0xcc, 0xe3, 0x9c, 0x85, 0x5a, 0x14, 0x29, 0x1c, 0x6e, + 0x05, 0xa7, 0xf6, 0xf4, 0x85, 0x46, 0xe3, 0xf1, 0x50, 0xe4, 0xf4, 0x0d, 0x6d, 0xc1, 0x51, 0x59, + 0x79, 0x2f, 0x37, 0xd5, 0x85, 0x47, 0xe1, 0xf0, 0xa5, 0x2c, 0x65, 0x5a, 0x74, 0x14, 0x34, 0x97, + 0x4d, 0x59, 0xd1, 0x3f, 0xc6, 0x87, 0xc2, 0xe1, 0xf8, 0xa6, 0x2c, 0xef, 0x1b, 0x41, 0x2a, 0x19, + 0xa8, 0x59, 0xf6, 0x8b, 0xa9, 0xa4, 0xa0, 0x6b, 0x5e, 0x6d, 0x9f, 0xea, 0x55, 0xd0, 0xbc, 0xaa, + 0x4f, 0xae, 0x4e, 0x6d, 0x72, 0x6d, 0x42, 0x17, 0xf5, 0xe4, 0x41, 0xbf, 0x88, 0xa9, 0x5e, 0x63, + 0xea, 0xb1, 0xd1, 0xad, 0xc6, 0x86, 0xee, 0xdd, 0xa5, 0x09, 0xde, 0x5d, 0x2e, 0xbc, 0xfb, 0x6b, + 0x13, 0x60, 0x87, 0x44, 0x6e, 0x9c, 0x86, 0x84, 0xa6, 0x7c, 0x78, 0x5e, 0x41, 0x15, 0xce, 0xd5, + 0x78, 0x6a, 0x9e, 0x30, 0xf5, 0x3c, 0x61, 0xc1, 0x9c, 0x00, 0x1c, 0xbd, 0x29, 0x7e, 0x73, 0x30, + 0x23, 0x37, 0x46, 0x6d, 0x18, 0xe4, 0x05, 0xcd, 0xf3, 0x00, 0x8b, 0x3d, 0x99, 0x39, 0x9a, 0x0e, + 0x12, 0x7c, 0xf2, 0x97, 0xfd, 0x89, 0x82, 0xa6, 0x85, 0xeb, 0xba, 0xce, 0x3d, 0xb3, 0x06, 0x7b, + 0x09, 0x56, 0x92, 0xec, 0xa0, 0x1c, 0xdc, 0x5e, 0x16, 0xca, 0x70, 0xaf, 0xf1, 0x39, 0xa8, 0x58, + 0x9c, 0xf1, 0x46, 0x98, 0x6a, 0x4a, 0x46, 0xb5, 0x2a, 0xb0, 0xdf, 0x35, 0x61, 0xe5, 0x6e, 0x3c, + 0x74, 0xa9, 0xff, 0x6d, 0x51, 0x6e, 0x8a, 0x05, 0x7c, 0x96, 0x94, 0xbb, 0x01, 0x1d, 0x42, 0x87, + 0x81, 0x9f, 0x1c, 0xed, 0x95, 0xb8, 0xa9, 0x2c, 0x15, 0xec, 0xb9, 0x49, 0x49, 0xb9, 0xa9, 0x25, + 0xe5, 0x35, 0x68, 0x85, 0xec, 0xc0, 0x0f, 0xf2, 0xb8, 0x97, 0x94, 0x88, 0x79, 0x12, 0x10, 0x91, + 0x9d, 0x8b, 0x98, 0xcf, 0x19, 0x65, 0xa2, 0x5e, 0x18, 0x9b, 0xa8, 0xdb, 0x6a, 0xa2, 0xd6, 0x81, + 0x87, 0x1a, 0xf0, 0x08, 0x57, 0xa7, 0x80, 0xeb, 0x8f, 0x06, 0xac, 0x94, 0x70, 0x63, 0x0d, 0x3a, + 0x11, 0xae, 0x6a, 0x04, 0x9a, 0x63, 0x22, 0xb0, 0x88, 0x9b, 0x86, 0x1a, 0x37, 0x3c, 0xd2, 0x58, + 0xe2, 0x2b, 0xf5, 0x7e, 0x41, 0xf3, 0xde, 0x02, 0xe2, 0x2a, 0x60, 0x21, 0xa5, 0x54, 0xdd, 0x2d, + 0xad, 0xea, 0xae, 0xe6, 0xd1, 0xdf, 0x19, 0x70, 0x91, 0x7b, 0xb9, 0x36, 0x8c, 0xbb, 0xb0, 0xc2, + 0x2a, 0x91, 0x20, 0x13, 0xcd, 0x27, 0xc6, 0x24, 0x8a, 0x6a, 0xd0, 0x38, 0x35, 0x61, 0xae, 0xd0, + 0xab, 0x74, 0x22, 0x33, 0xcf, 0x38, 0x85, 0x55, 0x7b, 0x9c, 0x9a, 0xb0, 0xfd, 0x7b, 0x03, 0x56, + 0x30, 0xb5, 0x29, 0xf3, 0xfc, 0xdc, 0xcd, 0x7e, 0x0b, 0x2e, 0x56, 0x7b, 0xbe, 0xe3, 0x27, 0x69, + 0xcf, 0xdc, 0x68, 0x4c, 0x6b, 0xfa, 0x58, 0x05, 0xf6, 0x77, 0xa0, 0xb7, 0x9f, 0x05, 0xc1, 0x2e, + 0x49, 0x12, 0x77, 0x48, 0xb6, 0x1e, 0xf5, 0xc9, 0x88, 0xf3, 0x1d, 0x92, 0x44, 0x7c, 0x72, 0x90, + 0x38, 0xde, 0x66, 0x1e, 0x11, 0xc6, 0x37, 0x9d, 0x9c, 0xe4, 0x7e, 0x25, 0x71, 0xcc, 0x57, 0x48, + 0x59, 0xc2, 0x21, 0x65, 0x5d, 0x81, 0xb9, 0x80, 0x9b, 0xd5, 0x10, 0x66, 0xad, 0x8f, 0x31, 0x6b, + 0x37, 0x19, 0xee, 0xb8, 0xa9, 0xeb, 0x88, 0x76, 0x76, 0x08, 0xcf, 0x8d, 0xef, 0x7d, 0x34, 0x31, + 0x80, 0x79, 0x91, 0x25, 0xaa, 0x14, 0x9f, 0xd1, 0x22, 0x7e, 0x55, 0x16, 0x37, 0x3b, 0x41, 0x3d, + 0xc2, 0x8e, 0xae, 0x93, 0x93, 0xf6, 0x45, 0xb0, 0x6e, 0x92, 0x74, 0xd7, 0x7d, 0x78, 0x8d, 0x7a, + 0xbb, 0x3e, 0xed, 0x93, 0x91, 0x43, 0x46, 0xf6, 0x75, 0xb8, 0x50, 0xe3, 0x26, 0x91, 0x98, 0xe8, + 0xee, 0xc3, 0x3e, 0x19, 0x09, 0x03, 0xba, 0x8e, 0xa4, 0x04, 0x5f, 0xb4, 0x92, 0xf5, 0x9b, 0xa4, + 0xec, 0x11, 0x2c, 0x73, 0x57, 0xf5, 0x09, 0xf5, 0x76, 0x93, 0xa1, 0x50, 0xb1, 0x01, 0x1d, 0x44, + 0x60, 0x37, 0x19, 0x96, 0x05, 0xa1, 0xc2, 0xe2, 0x2d, 0x06, 0x81, 0xcf, 0x5d, 0x22, 0x5a, 0xc8, + 0xd1, 0x28, 0x2c, 0x3e, 0xed, 0x12, 0x22, 0xf7, 0x47, 0x7c, 0x3e, 0x36, 0x9c, 0x82, 0xb6, 0xff, + 0xd6, 0x84, 0x79, 0x09, 0xa8, 0x98, 0x6a, 0xbc, 0x06, 0x2f, 0xf0, 0x42, 0x0a, 0xb3, 0xe5, 0xe0, + 0xa4, 0xdc, 0x6a, 0x22, 0xa5, 0x6e, 0x4e, 0x1b, 0xfa, 0xe6, 0xb4, 0x62, 0xd3, 0x5c, 0xdd, 0xa6, + 0xca, 0xb8, 0x9a, 0xf5, 0x71, 0xf1, 0xe4, 0x20, 0xd6, 0xcb, 0xfd, 0xc0, 0x4d, 0x0f, 0x59, 0x1c, + 0xca, 0x92, 0xba, 0xe9, 0xd4, 0xf8, 0x3c, 0x21, 0x21, 0xaf, 0xa8, 0x28, 0x70, 0x61, 0xa8, 0x70, + 0x79, 0xfe, 0x46, 0x4e, 0x5e, 0x59, 0xe0, 0x5e, 0x46, 0x67, 0xa2, 0x6d, 0x49, 0xe2, 0x33, 0x2a, + 0x72, 0x1b, 0x16, 0x10, 0x2a, 0x8b, 0x8f, 0x3c, 0x4c, 0x86, 0x37, 0x62, 0x16, 0xca, 0x1d, 0x4d, + 0x4e, 0x8a, 0x91, 0x33, 0x9a, 0xe6, 0x79, 0xb1, 0x83, 0xb2, 0x0a, 0x8b, 0xcb, 0x4a, 0x52, 0x54, + 0x0f, 0x8b, 0x4e, 0x4e, 0x5a, 0x2b, 0xd0, 0x48, 0xc8, 0x48, 0x96, 0x04, 0xfc, 0xa7, 0xe6, 0xb9, + 0x65, 0xdd, 0x73, 0x95, 0x35, 0x7e, 0x45, 0x7c, 0x55, 0xd7, 0xf8, 0x72, 0xe1, 0x5c, 0xd5, 0x16, + 0xce, 0x6b, 0x30, 0xcf, 0x22, 0x1e, 0xe7, 0x49, 0xcf, 0x12, 0x73, 0xec, 0x93, 0x93, 0xe7, 0xd8, + 0x95, 0xbb, 0xd8, 0xf2, 0x3a, 0x4d, 0xe3, 0x47, 0x4e, 0x2e, 0x67, 0xdd, 0x81, 0x65, 0x76, 0x78, + 0x18, 0xf8, 0x94, 0xec, 0x67, 0xc9, 0x91, 0x28, 0xbd, 0x2f, 0x88, 0xa5, 0xc9, 0x1e, 0xb7, 0x34, + 0xe9, 0x2d, 0x9d, 0xaa, 0x28, 0xcf, 0x27, 0x6e, 0x8a, 0xa5, 0x93, 0x98, 0x71, 0x17, 0x37, 0x1a, + 0x3c, 0x9f, 0xa8, 0xbc, 0xf5, 0xd7, 0x60, 0x51, 0x35, 0x85, 0x43, 0x75, 0x4c, 0x1e, 0xc9, 0x38, + 0xe5, 0x3f, 0x79, 0xc6, 0x39, 0x71, 0x83, 0x0c, 0x33, 0xf8, 0x82, 0x83, 0xc4, 0x6b, 0xe6, 0x17, + 0x0c, 0xfb, 0xc7, 0x06, 0x2c, 0x57, 0x8c, 0xe0, 0xad, 0x53, 0x3f, 0x0d, 0x88, 0xd4, 0x80, 0x04, + 0xaf, 0x8e, 0x3c, 0x92, 0x0c, 0x64, 0x98, 0x8b, 0xdf, 0x32, 0xcf, 0x34, 0x8a, 0x3d, 0xaf, 0x0d, + 0x8b, 0xfe, 0xdd, 0x3e, 0x57, 0xd4, 0x67, 0x19, 0xf5, 0x8a, 0x73, 0x2b, 0x85, 0xc7, 0xc3, 0xcc, + 0xbf, 0xdb, 0xdf, 0x72, 0xbd, 0x21, 0xc1, 0xd3, 0xa5, 0xa6, 0xb0, 0x49, 0x67, 0xda, 0x1e, 0x2c, + 0xdc, 0xf3, 0xa3, 0x64, 0x9b, 0x85, 0x21, 0x77, 0x96, 0x47, 0x52, 0x9e, 0xc7, 0x0d, 0x11, 0x13, + 0x92, 0xe2, 0xe1, 0xe4, 0x91, 0x43, 0x37, 0x0b, 0x52, 0xde, 0x34, 0x9f, 0xdc, 0x0a, 0x4b, 0x9c, + 0xab, 0x24, 0x8c, 0xee, 0xa0, 0x34, 0xda, 0xa9, 0x70, 0xec, 0x3f, 0x99, 0xb0, 0x22, 0x76, 0x3f, + 0xdb, 0x22, 0x34, 0x3c, 0x21, 0xf4, 0x0a, 0x34, 0xc5, 0x54, 0x95, 0x19, 0xe5, 0xf4, 0x1d, 0x13, + 0x36, 0xb5, 0xae, 0x42, 0x8b, 0x45, 0x22, 0x0d, 0x61, 0xb2, 0x7b, 0x61, 0x92, 0x90, 0x7e, 0x84, + 0xe5, 0x48, 0x29, 0xeb, 0x06, 0x40, 0x58, 0x66, 0x1d, 0x5c, 0xde, 0xa7, 0xd5, 0xa1, 0x48, 0x72, + 0x70, 0x8b, 0xa5, 0xba, 0x38, 0xc7, 0x6a, 0x38, 0x3a, 0xd3, 0xda, 0x83, 0x25, 0x61, 0xf6, 0xdd, + 0x7c, 0xeb, 0x2c, 0x7c, 0x30, 0x7d, 0x8f, 0x15, 0x69, 0xfb, 0xe7, 0x86, 0x84, 0x91, 0x7f, 0xed, + 0x13, 0xc4, 0xbe, 0x84, 0xc4, 0x98, 0x09, 0x92, 0x75, 0x58, 0x08, 0x33, 0x65, 0x27, 0xdf, 0x70, + 0x0a, 0xba, 0x74, 0x51, 0x63, 0x6a, 0x17, 0xd9, 0xbf, 0x30, 0xa0, 0xf7, 0x06, 0xf3, 0xa9, 0xf8, + 0x70, 0x2d, 0x8a, 0x02, 0x79, 0xd8, 0x3a, 0xb3, 0xcf, 0xbf, 0x02, 0x6d, 0x17, 0xd5, 0xd0, 0x54, + 0xba, 0x7d, 0x8a, 0xdd, 0x79, 0x29, 0xa3, 0x6c, 0xb4, 0x1a, 0xea, 0x46, 0xcb, 0x7e, 0xcf, 0x80, 0x25, 0x04, 0xe5, 0xcd, 0xcc, 0x4f, 0x67, 0xb6, 0x6f, 0x0b, 0x16, 0x46, 0x99, 0x9f, 0xce, 0x10, 0x95, 0x85, 0x5c, 0x3d, 0x9e, 0x1a, 0x63, 0xe2, 0xc9, 0x7e, 0xdf, 0x80, 0x4b, 0x55, 0x58, 0xaf, - 0x0d, 0x06, 0x24, 0x7a, 0x92, 0x53, 0x4a, 0xdb, 0x44, 0xce, 0x55, 0x36, 0x91, 0x63, 0x4d, 0x76, - 0xc8, 0x3b, 0x64, 0xf0, 0xf4, 0x9a, 0xfc, 0x43, 0x13, 0x3e, 0x76, 0xb3, 0x98, 0x78, 0xf7, 0x62, + 0x0d, 0x06, 0x24, 0x7a, 0x92, 0x53, 0x4a, 0xdb, 0x68, 0xce, 0x55, 0x36, 0x9a, 0x63, 0x4d, 0x76, + 0xc8, 0x3b, 0x64, 0xf0, 0xf4, 0x9a, 0xfc, 0x7d, 0x13, 0x3e, 0x72, 0xb3, 0x98, 0x78, 0xf7, 0x62, 0x97, 0x26, 0x87, 0x24, 0x8e, 0x9f, 0xa0, 0xbd, 0x77, 0xa0, 0x4b, 0xc9, 0x83, 0xd2, 0x26, 0x39, - 0x1d, 0xa7, 0x55, 0xa3, 0x0b, 0x4f, 0xb7, 0x76, 0xd9, 0xff, 0x36, 0x60, 0x05, 0xf5, 0x7c, 0xdd, + 0x1d, 0xa7, 0x55, 0xa3, 0x0b, 0x4f, 0xb7, 0x76, 0xd9, 0xff, 0x36, 0x60, 0x05, 0xf5, 0x7c, 0xd5, 0x1f, 0x1c, 0x3f, 0xc1, 0xc1, 0xef, 0xc1, 0xd2, 0xb1, 0xb0, 0x80, 0x53, 0x33, 0x2c, 0xdb, 0x15, 0xe9, 0x29, 0x87, 0xff, 0x1f, 0x03, 0x56, 0x51, 0xd1, 0x6d, 0x7a, 0xe2, 0x3f, 0xc9, 0x60, 0xdd, - 0x87, 0x65, 0x1f, 0x4d, 0x98, 0x11, 0x80, 0xaa, 0xf8, 0x94, 0x08, 0xfc, 0xde, 0x80, 0x65, 0xd4, + 0x87, 0x65, 0x1f, 0x4d, 0x98, 0x11, 0x80, 0xaa, 0xf8, 0x94, 0x08, 0xfc, 0xd6, 0x80, 0x65, 0xd4, 0x74, 0x9d, 0xa6, 0x24, 0x9e, 0x79, 0xfc, 0xb7, 0xa0, 0x43, 0x68, 0x1a, 0xbb, 0x74, 0x96, 0x15, 0x52, 0x15, 0x9d, 0x72, 0x91, 0x7c, 0xcf, 0x00, 0x4b, 0xa8, 0xda, 0xf1, 0x93, 0xd0, 0x4f, 0x92, - 0x27, 0xe8, 0xba, 0xe9, 0x0c, 0xfe, 0xb9, 0x09, 0x17, 0x15, 0x2d, 0xbb, 0x59, 0xfa, 0xb4, 0x9b, - 0x6c, 0xed, 0x40, 0x9b, 0xd7, 0x08, 0xea, 0xed, 0xc4, 0xb4, 0x1d, 0x95, 0x82, 0xbc, 0x8a, 0x15, + 0x27, 0xe8, 0xba, 0xe9, 0x0c, 0xfe, 0xa9, 0x09, 0x17, 0x15, 0x2d, 0xbb, 0x59, 0xfa, 0xb4, 0x9b, + 0x6c, 0xed, 0x40, 0x9b, 0xd7, 0x08, 0xea, 0x0d, 0xc6, 0xb4, 0x1d, 0x95, 0x82, 0xbc, 0x8a, 0x15, 0x44, 0x9f, 0x0c, 0x18, 0xf5, 0x12, 0x51, 0x1c, 0x75, 0x1d, 0x8d, 0xc7, 0x97, 0xa1, 0x75, 0x45, - 0xcd, 0xb6, 0x4b, 0x07, 0x24, 0x78, 0x66, 0x20, 0xb2, 0x7f, 0x63, 0xc0, 0x12, 0x36, 0x79, 0xfa, - 0x87, 0xcc, 0x73, 0x3d, 0x06, 0xf2, 0x47, 0xc6, 0x4b, 0x3c, 0xbc, 0xd6, 0x14, 0x2d, 0x6a, 0x5d, + 0xcd, 0xb6, 0x4b, 0x07, 0x24, 0x78, 0x66, 0x20, 0xb2, 0x7f, 0x65, 0xc0, 0x12, 0x36, 0x79, 0xfa, + 0x87, 0xcc, 0x73, 0x3d, 0x06, 0xf2, 0x87, 0xc6, 0x4b, 0x3c, 0xbc, 0xd6, 0x14, 0x2d, 0x6a, 0x5d, 0xfd, 0xf4, 0x86, 0xd6, 0x2d, 0xe8, 0x0c, 0x8e, 0x5c, 0x3a, 0x9c, 0x29, 0xb8, 0x54, 0x51, 0x3b, - 0x85, 0xe7, 0xd4, 0x03, 0xb9, 0x6d, 0xfc, 0x24, 0x86, 0xff, 0x6a, 0x65, 0x28, 0xa7, 0xde, 0x3e, - 0x3e, 0x1e, 0xe8, 0xc7, 0xb0, 0x8a, 0xb7, 0x40, 0x4a, 0x4d, 0x68, 0xf5, 0x60, 0xde, 0xf5, 0xf0, - 0x00, 0xc1, 0x10, 0x42, 0x39, 0xa9, 0xdf, 0xef, 0xc9, 0x27, 0x1c, 0xe5, 0xfd, 0xde, 0x65, 0x00, + 0x85, 0xe7, 0xd4, 0x43, 0xbb, 0x6d, 0xfc, 0x24, 0x86, 0xff, 0x6a, 0x65, 0x28, 0xa7, 0xde, 0x50, + 0x3e, 0x1e, 0xe8, 0xc7, 0xb0, 0x8a, 0x37, 0x45, 0x4a, 0x4d, 0x68, 0xf5, 0x60, 0xde, 0xf5, 0xf0, + 0x90, 0xc1, 0x10, 0x42, 0x39, 0xa9, 0xdf, 0x01, 0xca, 0x67, 0x1e, 0xe5, 0x1d, 0xe0, 0x65, 0x00, 0xd7, 0xf3, 0xde, 0x62, 0xb1, 0xe7, 0xd3, 0xbc, 0xc0, 0x57, 0x38, 0xf6, 0x1b, 0xb0, 0x78, 0x23, - 0x66, 0xe1, 0x3d, 0xe5, 0x3e, 0xe7, 0xd4, 0x1b, 0x27, 0xf5, 0x2e, 0xc8, 0xd4, 0xef, 0x82, 0xec, - 0xef, 0xc0, 0xff, 0xd7, 0x0c, 0x17, 0x60, 0x6d, 0xe3, 0x35, 0x55, 0xde, 0x89, 0x0c, 0x99, 0x4f, - 0x8c, 0x81, 0x4c, 0xb5, 0xc5, 0xd1, 0x84, 0xec, 0x1f, 0x18, 0xf0, 0x7c, 0x4d, 0xfd, 0xb5, 0x28, + 0x66, 0xe1, 0x3d, 0xe5, 0xce, 0xe7, 0xd4, 0x5b, 0x29, 0xf5, 0xbe, 0xc8, 0xd4, 0xef, 0x8b, 0xec, + 0x6f, 0xc1, 0xff, 0xd7, 0x0c, 0x17, 0x60, 0x6d, 0xe3, 0x55, 0x56, 0xde, 0x89, 0x0c, 0x99, 0x8f, + 0x8d, 0x81, 0x4c, 0xb5, 0xc5, 0xd1, 0x84, 0xec, 0xef, 0x19, 0xf0, 0x7c, 0x4d, 0xfd, 0xb5, 0x28, 0x8a, 0xd9, 0x89, 0xf4, 0xc9, 0x79, 0x74, 0xa3, 0x17, 0xbf, 0x66, 0xb5, 0xf8, 0x1d, 0x6b, 0x84, - 0x56, 0xb0, 0x7f, 0x08, 0x46, 0xfc, 0xda, 0x80, 0x65, 0x69, 0x84, 0xe7, 0xc9, 0x6e, 0xbf, 0x08, - 0x2d, 0xbc, 0xe2, 0x96, 0x1d, 0x3e, 0x3f, 0xb6, 0xc3, 0xfc, 0x6a, 0xde, 0x91, 0x8d, 0xeb, 0x11, - 0x69, 0x8e, 0x9b, 0x51, 0x5f, 0x2e, 0x82, 0x7d, 0xea, 0x4b, 0x68, 0x29, 0x60, 0x7f, 0x33, 0x0f, - 0xe6, 0x1d, 0x12, 0x90, 0xf3, 0xc4, 0xc8, 0xbe, 0x0f, 0x4b, 0xe2, 0xbe, 0xbd, 0xc4, 0xe0, 0x5c, + 0x56, 0xb0, 0x7f, 0x00, 0x46, 0xfc, 0xd2, 0x80, 0x65, 0x69, 0x84, 0xe7, 0xc9, 0x6e, 0x3f, 0x0f, + 0x2d, 0xbc, 0x06, 0x97, 0x1d, 0x3e, 0x3f, 0xb6, 0xc3, 0xfc, 0xfa, 0xde, 0x91, 0x8d, 0xeb, 0x11, + 0x69, 0x8e, 0x9b, 0x51, 0x5f, 0x2c, 0x82, 0x7d, 0xea, 0x8b, 0x6a, 0x29, 0x60, 0x7f, 0x3d, 0x0f, + 0xe6, 0x1d, 0x12, 0x90, 0xf3, 0xc4, 0xc8, 0xbe, 0x0f, 0x4b, 0xe2, 0x4e, 0xbe, 0xc4, 0xe0, 0x5c, 0xd4, 0xbe, 0x05, 0x2b, 0x42, 0xed, 0xb9, 0xdb, 0x5b, 0xcc, 0x0e, 0x8e, 0x8f, 0xba, 0x94, 0x9c, - 0x8b, 0xf6, 0xcf, 0xc3, 0x85, 0x1c, 0xfb, 0xfb, 0x91, 0x57, 0x1c, 0x22, 0x4d, 0x38, 0x3a, 0xb7, - 0xbf, 0x00, 0x6b, 0xdb, 0x8c, 0x9e, 0x90, 0x38, 0xc1, 0x8b, 0x05, 0x21, 0x92, 0x4b, 0x68, 0x93, + 0x8b, 0xf6, 0xcf, 0xc2, 0x85, 0x1c, 0xfb, 0xfb, 0x91, 0x57, 0x1c, 0x22, 0x4d, 0x38, 0x5e, 0xb7, + 0x3f, 0x07, 0x6b, 0xdb, 0x8c, 0x9e, 0x90, 0x38, 0xc1, 0xcb, 0x07, 0x21, 0x92, 0x4b, 0x68, 0x93, 0x5f, 0x52, 0xf6, 0x3b, 0xb0, 0xae, 0x4a, 0xf4, 0x49, 0xba, 0x1f, 0xfb, 0x27, 0x8a, 0x94, 0x3c, - 0x5a, 0x36, 0xb4, 0xa3, 0xe5, 0xf2, 0x28, 0xda, 0xd4, 0x8e, 0xa2, 0x2f, 0x41, 0xdb, 0x4f, 0xa4, - 0x02, 0x11, 0x54, 0x0b, 0x4e, 0xc9, 0xb0, 0xfb, 0xb0, 0x2a, 0x6f, 0xc0, 0xf7, 0xdd, 0xa1, 0x4f, - 0x71, 0x05, 0xbc, 0x0c, 0x10, 0xb9, 0xc3, 0xfc, 0x05, 0x0c, 0xde, 0x42, 0x28, 0x1c, 0xfe, 0x3d, - 0x39, 0x62, 0x0f, 0xe4, 0x77, 0x13, 0xbf, 0x97, 0x1c, 0xfb, 0x1b, 0x60, 0x39, 0x24, 0x89, 0x18, - 0x4d, 0x88, 0xa2, 0x75, 0x03, 0x3a, 0xdb, 0x59, 0x1c, 0x13, 0xca, 0xbb, 0xca, 0x9f, 0x83, 0xa8, - 0x2c, 0xae, 0xb7, 0x5f, 0xea, 0xc5, 0x93, 0x6b, 0x85, 0x63, 0xff, 0xa2, 0x01, 0xed, 0xbe, 0x3f, - 0xa4, 0x6e, 0xe0, 0x90, 0x91, 0xf5, 0x15, 0x68, 0xe1, 0x7e, 0x42, 0xba, 0x71, 0xdc, 0x49, 0x2a, + 0x7e, 0x36, 0xb4, 0xe3, 0xe7, 0xf2, 0xb8, 0xda, 0xd4, 0x8e, 0xab, 0x2f, 0x41, 0xdb, 0x4f, 0xa4, + 0x02, 0x11, 0x54, 0x0b, 0x4e, 0xc9, 0xb0, 0xfb, 0xb0, 0x2a, 0x6f, 0xc9, 0xf7, 0xdd, 0xa1, 0x4f, + 0x71, 0x05, 0xbc, 0x0c, 0x10, 0xb9, 0xc3, 0xfc, 0x95, 0x0c, 0xde, 0x54, 0x28, 0x1c, 0xfe, 0x3d, + 0x39, 0x62, 0x0f, 0xe4, 0x77, 0x13, 0xbf, 0x97, 0x1c, 0xfb, 0x6b, 0x60, 0x39, 0x24, 0x89, 0x18, + 0x4d, 0x88, 0xa2, 0x75, 0x03, 0x3a, 0xdb, 0x59, 0x1c, 0x13, 0xca, 0xbb, 0xca, 0x9f, 0x8c, 0xa8, + 0x2c, 0xae, 0xb7, 0x5f, 0xea, 0xc5, 0xd3, 0x6d, 0x85, 0x63, 0xff, 0xac, 0x01, 0xed, 0xbe, 0x3f, + 0xa4, 0x6e, 0xe0, 0x90, 0x91, 0xf5, 0x25, 0x68, 0xe1, 0x7e, 0x42, 0xba, 0x71, 0xdc, 0x69, 0x2b, 0xb6, 0xc6, 0x8d, 0x93, 0x43, 0x46, 0xb7, 0xfe, 0xcf, 0x91, 0x32, 0xd6, 0x9b, 0xd0, 0xc5, 0x5f, - 0xb7, 0xf1, 0x7c, 0x48, 0x26, 0x97, 0xcf, 0x9c, 0xa1, 0x44, 0xb6, 0x46, 0x5d, 0xba, 0x06, 0x6e, + 0xb7, 0xf1, 0x7c, 0x48, 0x26, 0x97, 0x4f, 0x9d, 0xa1, 0x44, 0xb6, 0x46, 0x5d, 0xba, 0x06, 0x6e, 0xd0, 0x40, 0xd4, 0x1b, 0x72, 0xee, 0x4e, 0x36, 0x08, 0xcb, 0x12, 0x69, 0x10, 0xca, 0x70, 0x69, 0x57, 0x9c, 0xa0, 0xc8, 0x34, 0x3a, 0x59, 0x1a, 0x0f, 0x5a, 0xa4, 0x34, 0xca, 0x70, 0xe9, 0xa3, 0x8c, 0x0e, 0xef, 0x47, 0xf2, 0x60, 0x6f, 0xb2, 0xf4, 0x2d, 0xd1, 0x4c, 0x4a, 0xa3, 0x0c, 0x97, 0x8e, 0xc5, 0xca, 0x2a, 0x40, 0x3f, 0x4d, 0x1a, 0x17, 0x60, 0x29, 0x8d, 0x32, 0x5b, 0x6d, 0x98, 0x8f, 0xdc, 0x47, 0x01, 0x73, 0x3d, 0xfb, 0xdd, 0x06, 0x40, 0xde, 0x30, 0x11, 0x55, 0x88, 0xe6, - 0xa2, 0xcd, 0x33, 0x5d, 0x14, 0x05, 0x8f, 0x14, 0x27, 0xf5, 0xc7, 0x3b, 0xe9, 0xb3, 0xd3, 0x3a, + 0xa2, 0xcd, 0x33, 0x5d, 0x14, 0x05, 0x8f, 0x14, 0x27, 0xf5, 0xc7, 0x3b, 0xe9, 0xd3, 0xd3, 0x3a, 0x09, 0xb5, 0x55, 0xdc, 0x74, 0xb5, 0xe2, 0xa6, 0xcd, 0x33, 0xdd, 0x24, 0x8d, 0x92, 0x8e, 0xba, 0x5a, 0x71, 0xd4, 0xe6, 0x99, 0x8e, 0x92, 0xf2, 0xd2, 0x55, 0x57, 0x2b, 0xae, 0xda, 0x3c, 0xd3, 0x55, 0x52, 0x5e, 0x3a, 0xeb, 0x6a, 0xc5, 0x59, 0x9b, 0x67, 0x3a, 0x4b, 0xca, 0xd7, 0xdd, 0xf5, - 0xbe, 0x09, 0x4b, 0x02, 0x32, 0xbc, 0xc5, 0xa3, 0x87, 0x4c, 0x1c, 0xd6, 0x0b, 0xb8, 0xf4, 0x07, - 0x55, 0x3a, 0xd3, 0xfa, 0x1c, 0xac, 0x22, 0x43, 0x3e, 0xc0, 0x29, 0xae, 0x45, 0xdb, 0x4e, 0xfd, - 0x83, 0xb8, 0x77, 0xc9, 0x92, 0x94, 0x85, 0x3b, 0x6e, 0xea, 0xe6, 0x95, 0x51, 0xc9, 0x51, 0x6f, - 0xc5, 0xe6, 0x6a, 0x4f, 0x36, 0x63, 0xc6, 0xc2, 0xe2, 0xba, 0x4b, 0x52, 0x5c, 0x22, 0xf5, 0x43, - 0xc2, 0xb2, 0x54, 0x2e, 0x13, 0x39, 0x89, 0x8f, 0x1e, 0x3c, 0xdf, 0x15, 0x77, 0x49, 0xf2, 0x45, - 0x40, 0xc1, 0x10, 0x2b, 0x5b, 0x79, 0x37, 0x26, 0x9f, 0x54, 0x96, 0x9c, 0xb3, 0xef, 0xb1, 0xec, - 0xbf, 0x1b, 0x70, 0x61, 0xdf, 0x8d, 0x53, 0x7f, 0xe0, 0x47, 0x2e, 0x4d, 0x77, 0x49, 0xea, 0x8a, - 0x31, 0x68, 0xaf, 0xaa, 0x8c, 0xc7, 0x7b, 0x55, 0xb5, 0x0f, 0xcb, 0x43, 0xbd, 0xf4, 0x7f, 0xcc, - 0xaa, 0xbd, 0x2a, 0xae, 0x3d, 0x11, 0x6b, 0x3c, 0xf6, 0x13, 0x31, 0xfb, 0xc7, 0x26, 0x2c, 0x57, - 0x96, 0x4e, 0x5e, 0x8e, 0x62, 0xa1, 0x51, 0xc4, 0x44, 0x41, 0x5b, 0xd7, 0x00, 0xfc, 0x22, 0x8c, - 0x4e, 0x39, 0x19, 0xd7, 0x63, 0xcd, 0x51, 0x84, 0xc6, 0x5d, 0x90, 0x35, 0x66, 0xbe, 0x20, 0xe3, - 0x1b, 0x93, 0xa8, 0x74, 0xd2, 0x29, 0x1b, 0x93, 0x31, 0xae, 0x74, 0x54, 0x51, 0xfb, 0xdb, 0xb0, - 0x5a, 0x5b, 0xa1, 0xc4, 0x7d, 0x19, 0x3b, 0x26, 0xb4, 0xb8, 0x2f, 0xe3, 0x84, 0x12, 0xac, 0x66, - 0x35, 0x58, 0x03, 0xff, 0x44, 0x7d, 0x83, 0x2a, 0x49, 0xfb, 0x27, 0x26, 0xac, 0x8d, 0xcf, 0x2e, - 0xcf, 0x2a, 0xdc, 0x07, 0xd0, 0x9b, 0xb4, 0x92, 0x9f, 0x1b, 0xea, 0x65, 0x74, 0x17, 0x79, 0xf8, - 0x59, 0x85, 0xfb, 0x42, 0x1e, 0xdd, 0x4a, 0xaa, 0xb3, 0x7f, 0x57, 0xe0, 0x53, 0x54, 0x1a, 0xcf, - 0x28, 0x3e, 0xd6, 0x4b, 0xb0, 0x82, 0xc3, 0x54, 0x5e, 0x54, 0x60, 0xe1, 0x5a, 0xe3, 0x97, 0x2b, - 0x85, 0x92, 0xf6, 0xcf, 0x2d, 0x66, 0xff, 0x68, 0xe4, 0x3e, 0x29, 0xea, 0xb7, 0x8f, 0x94, 0x4f, - 0xca, 0x48, 0x53, 0x8a, 0x1a, 0x25, 0xd2, 0x8a, 0xba, 0xf2, 0x7f, 0x91, 0x76, 0x76, 0xa4, 0x15, - 0x58, 0x2a, 0x05, 0x9e, 0xfd, 0x7d, 0xe8, 0xee, 0x90, 0x60, 0x37, 0x19, 0xe6, 0x6f, 0xb9, 0x4e, - 0x03, 0x72, 0xd2, 0x5f, 0x61, 0x26, 0xbe, 0xe2, 0xaa, 0xbe, 0x00, 0x9b, 0xab, 0xbd, 0x00, 0xb3, - 0xb7, 0x60, 0x49, 0x35, 0x60, 0x96, 0xa7, 0x6c, 0x5b, 0x97, 0xbe, 0xb5, 0x7e, 0xe5, 0x65, 0xfc, - 0xd3, 0xd5, 0xeb, 0x35, 0x10, 0x0f, 0x5a, 0xe2, 0x4f, 0x58, 0xaf, 0xfe, 0x37, 0x00, 0x00, 0xff, - 0xff, 0xda, 0x69, 0x8c, 0xa6, 0x97, 0x35, 0x00, 0x00, + 0xbe, 0x09, 0x4b, 0x02, 0x32, 0xbc, 0xe9, 0xa3, 0x87, 0x4c, 0x1c, 0xd6, 0x0b, 0xb8, 0xf4, 0x47, + 0x57, 0x3a, 0xd3, 0xfa, 0x0c, 0xac, 0x22, 0x83, 0x28, 0x37, 0x15, 0xa6, 0xb8, 0xa9, 0xa8, 0x7f, + 0x10, 0x77, 0x33, 0x59, 0x92, 0xb2, 0x70, 0xc7, 0x4d, 0xdd, 0xbc, 0x32, 0x2a, 0x39, 0xea, 0xcd, + 0xd9, 0x5c, 0xed, 0x59, 0x67, 0xcc, 0x58, 0x58, 0x5c, 0x89, 0x49, 0x8a, 0x4b, 0xa4, 0x7e, 0x48, + 0x58, 0x96, 0xca, 0x65, 0x22, 0x27, 0xf1, 0x61, 0x84, 0xe7, 0xbb, 0xe2, 0xbe, 0x49, 0xbe, 0x1a, + 0x28, 0x18, 0x62, 0x65, 0x2b, 0xef, 0xcf, 0xe4, 0xb3, 0xcb, 0x92, 0x73, 0xf6, 0x5d, 0x97, 0xfd, + 0x77, 0x03, 0x2e, 0xec, 0xbb, 0x71, 0xea, 0x0f, 0xfc, 0xc8, 0xa5, 0xe9, 0x2e, 0x49, 0x5d, 0x31, + 0x06, 0xed, 0xe5, 0x95, 0xf1, 0x78, 0x2f, 0xaf, 0xf6, 0x61, 0x79, 0xa8, 0x97, 0xfe, 0x8f, 0x59, + 0xb5, 0x57, 0xc5, 0xb5, 0x67, 0x64, 0x8d, 0xc7, 0x7e, 0x46, 0x66, 0xff, 0xd0, 0x84, 0xe5, 0xca, + 0xd2, 0xc9, 0xcb, 0x51, 0x2c, 0x34, 0x8a, 0x98, 0x28, 0x68, 0xeb, 0x1a, 0x80, 0x5f, 0x84, 0xd1, + 0x29, 0x27, 0xe3, 0x7a, 0xac, 0x39, 0x8a, 0xd0, 0xb8, 0x4b, 0xb4, 0xc6, 0xec, 0x97, 0x68, 0xb7, + 0xa0, 0x13, 0x95, 0x4e, 0x3a, 0x65, 0x63, 0x32, 0xc6, 0x95, 0x8e, 0x2a, 0x6a, 0x7f, 0x13, 0x56, + 0x6b, 0x2b, 0x94, 0xb8, 0x2f, 0x63, 0xc7, 0x84, 0x16, 0xf7, 0x65, 0x9c, 0x50, 0x82, 0xd5, 0xac, + 0x06, 0x6b, 0xe0, 0x9f, 0xa8, 0xef, 0x54, 0x25, 0x69, 0xff, 0xc8, 0x84, 0xb5, 0xf1, 0xd9, 0xe5, + 0x59, 0x85, 0xfb, 0x00, 0x7a, 0x93, 0x56, 0xf2, 0x73, 0x43, 0xbd, 0x8c, 0xee, 0x22, 0x0f, 0x3f, + 0xab, 0x70, 0x5f, 0xc8, 0xa3, 0x5b, 0x49, 0x75, 0xf6, 0x6f, 0x0a, 0x7c, 0x8a, 0x4a, 0xe3, 0x19, + 0xc5, 0xc7, 0x7a, 0x09, 0x56, 0x70, 0x98, 0xca, 0xab, 0x0b, 0x2c, 0x5c, 0x6b, 0xfc, 0x72, 0xa5, + 0x50, 0xd2, 0xfe, 0xb9, 0xc5, 0xec, 0x1f, 0x8c, 0xdc, 0x27, 0x45, 0xfd, 0xf6, 0xa1, 0xf2, 0x49, + 0x19, 0x69, 0x4a, 0x51, 0xa3, 0x44, 0x5a, 0x51, 0x57, 0xfe, 0x2f, 0xd2, 0xce, 0x8e, 0xb4, 0x02, + 0x4b, 0xa5, 0xc0, 0xb3, 0xbf, 0x0b, 0xdd, 0x1d, 0x12, 0xec, 0x26, 0xc3, 0xfc, 0xbd, 0xd7, 0x69, + 0x40, 0x4e, 0xfa, 0xbb, 0xcc, 0xc4, 0x97, 0x5e, 0xd5, 0x57, 0x62, 0x73, 0xb5, 0x57, 0x62, 0xf6, + 0x16, 0x2c, 0xa9, 0x06, 0xcc, 0xf2, 0xdc, 0x6d, 0xeb, 0xd2, 0x37, 0xd6, 0xaf, 0xbc, 0x8c, 0x7f, + 0xcc, 0x7a, 0xbd, 0x06, 0xe2, 0x41, 0x4b, 0xfc, 0x51, 0xeb, 0xd5, 0xff, 0x06, 0x00, 0x00, 0xff, + 0xff, 0xf8, 0x91, 0x1b, 0x32, 0xbb, 0x35, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 713c4574f..c2a89652f 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -213,8 +213,9 @@ message MsgData { int32 status = 17; map options = 18; OfflinePushInfo offlinePushInfo = 19; + repeated string atUserIDList = 20; + } -// repeated string atUserIDList = 20; message OfflinePushInfo{ string title = 1; string desc = 2; From e73f0a916a13722ed5063bfc422e4d42a85a4a63 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 24 Apr 2022 16:55:47 +0800 Subject: [PATCH 26/57] add modify conversation api --- cmd/open_im_api/main.go | 1 + internal/api/conversation/conversation.go | 32 +++++++++++++++++++++++ pkg/base_info/conversation_api_struct.go | 9 +++++++ 3 files changed, 42 insertions(+) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index cf1783117..b27892d9b 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -129,6 +129,7 @@ func main() { conversationGroup.POST("/set_conversation", conversation.SetConversation) conversationGroup.POST("/batch_set_conversation", conversation.BatchSetConversations) conversationGroup.POST("/set_recv_msg_opt", conversation.SetRecvMsgOpt) + conversationGroup.POST("/modify_conversation_field", conversation.ModifyConversationField) } // office officeGroup := r.Group("/office") diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 3d580864f..dcaa2b62e 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbConversation "Open_IM/pkg/proto/conversation" pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" @@ -44,6 +45,37 @@ func SetConversation(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) c.JSON(http.StatusOK, resp) } +func ModifyConversationField(c *gin.Context) { + var ( + req api.ModifyConversationFieldReq + resp api.ModifyConversationFieldResp + reqPb pbConversation.ModifyConversationFieldReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + reqPb.Conversation = &pbConversation.Conversation{} + err := utils.CopyStructFields(&reqPb, req) + err = utils.CopyStructFields(reqPb.Conversation, req.Conversation) + if err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", reqPb.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName) + client := pbConversation.NewConversationClient(etcdConn) + respPb, err := client.ModifyConversationField(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) + return + } + resp.ErrMsg = respPb.CommonResp.ErrMsg + resp.ErrCode = respPb.CommonResp.ErrCode + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + c.JSON(http.StatusOK, resp) +} func BatchSetConversations(c *gin.Context) { var ( diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 5e9d021f6..30890f7eb 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -58,6 +58,15 @@ type SetConversationReq struct { type SetConversationResp struct { CommResp } +type ModifyConversationFieldReq struct { + Conversation + FieldType int32 `json:"fieldType" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} +type ModifyConversationFieldResp struct { + CommResp +} type BatchSetConversationsReq struct { Conversations []Conversation `json:"conversations" binding:"required"` From 3247d84b6b3761ac57eeb6e13b9f54f61df5bef2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 24 Apr 2022 17:27:26 +0800 Subject: [PATCH 27/57] add modify conversation api --- internal/rpc/conversation/conversaion.go | 16 ++++++++-------- internal/rpc/msg/send_msg.go | 2 +- pkg/common/constant/constant.go | 14 +++++++------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index 409c1e488..aec03fd26 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -49,7 +49,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo } haveUserID, _ := imdb.GetExistConversationUserIDList(req.Conversation.ConversationID) switch req.FieldType { - case constant.RecvMsgOpt: + case constant.FieldRecvMsgOpt: for _, v := range req.UserIDList { if err = db.DB.SetSingleConversationRecvMsgOpt(v, req.Conversation.ConversationID, req.Conversation.RecvMsgOpt); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "cache failed, rpc return", err.Error()) @@ -58,17 +58,17 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo } } err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt}) - case constant.GroupAtType: + case constant.FieldGroupAtType: err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"group_at_type": conversation.GroupAtType}) - case constant.IsNotInGroup: + case constant.FieldIsNotInGroup: err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"is_not_in_group": conversation.IsNotInGroup}) - case constant.IsPinned: + case constant.FieldIsPinned: err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"is_pinned": conversation.IsPinned}) - case constant.IsPrivateChat: + case constant.FieldIsPrivateChat: err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"is_private_chat": conversation.IsPrivateChat}) - case constant.Ex: + case constant.FieldEx: err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"ex": conversation.Ex}) - case constant.AttachedInfo: + case constant.FieldAttachedInfo: err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"attached_info": conversation.AttachedInfo}) } if err != nil { @@ -86,7 +86,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo } } // notification - if req.Conversation.ConversationType == constant.SingleChatType && req.FieldType == constant.IsPrivateChat { + if req.Conversation.ConversationType == constant.SingleChatType && req.FieldType == constant.FieldIsPrivateChat { //sync peer user conversation if conversation is singleChatType if err := syncPeerUserConversation(req.Conversation, req.OperationID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "syncPeerUserConversation", err.Error()) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 16fba65dc..21dae7207 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -265,7 +265,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } conversationReq.Conversation = &conversation conversationReq.OperationID = pb.OperationID - conversationReq.FieldType = constant.GroupAtType + conversationReq.FieldType = constant.FieldGroupAtType tagAll := utils.IsContain(constant.AtAllString, pb.MsgData.AtUserIDList) if tagAll { atUserID = utils.DifferenceString([]string{constant.AtAllString}, pb.MsgData.AtUserIDList) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 9a66fd919..2e624dd5e 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -215,13 +215,13 @@ var ContentType2PushContent = map[int64]string{ } const ( - RecvMsgOpt = 1 - IsPinned = 2 - AttachedInfo = 3 - IsPrivateChat = 4 - GroupAtType = 5 - IsNotInGroup = 6 - Ex = 7 + FieldRecvMsgOpt = 1 + FieldIsPinned = 2 + FieldAttachedInfo = 3 + FieldIsPrivateChat = 4 + FieldGroupAtType = 5 + FieldIsNotInGroup = 6 + FieldEx = 7 ) const ( From 545f9cad2d92adb1ba26412442d5b92c093b3d99 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 24 Apr 2022 17:30:53 +0800 Subject: [PATCH 28/57] add modify conversation api --- internal/rpc/msg/send_msg.go | 79 ++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 21dae7207..f87278dc5 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -254,44 +254,34 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S case constant.MemberQuitNotification: addUidList = append(addUidList, pb.MsgData.SendID) case constant.AtText: - var conversationReq pbConversation.ModifyConversationFieldReq - var tag bool - var atUserID []string - conversation := pbConversation.Conversation{ - OwnerUserID: pb.MsgData.SendID, - ConversationID: utils.GetConversationIDBySessionType(pb.MsgData.GroupID, constant.GroupChatType), - ConversationType: constant.GroupChatType, - GroupID: pb.MsgData.GroupID, - } - conversationReq.Conversation = &conversation - conversationReq.OperationID = pb.OperationID - conversationReq.FieldType = constant.FieldGroupAtType - tagAll := utils.IsContain(constant.AtAllString, pb.MsgData.AtUserIDList) - if tagAll { - atUserID = utils.DifferenceString([]string{constant.AtAllString}, pb.MsgData.AtUserIDList) - if len(atUserID) == 0 { //just @everyone - conversationReq.UserIDList = memberUserIDList - conversation.GroupAtType = constant.AtAll - } else { //@Everyone and @other people - conversationReq.UserIDList = atUserID - conversation.GroupAtType = constant.AtAllAtMe - tag = true + go func() { + var conversationReq pbConversation.ModifyConversationFieldReq + var tag bool + var atUserID []string + conversation := pbConversation.Conversation{ + OwnerUserID: pb.MsgData.SendID, + ConversationID: utils.GetConversationIDBySessionType(pb.MsgData.GroupID, constant.GroupChatType), + ConversationType: constant.GroupChatType, + GroupID: pb.MsgData.GroupID, + } + conversationReq.Conversation = &conversation + conversationReq.OperationID = pb.OperationID + conversationReq.FieldType = constant.FieldGroupAtType + tagAll := utils.IsContain(constant.AtAllString, pb.MsgData.AtUserIDList) + if tagAll { + atUserID = utils.DifferenceString([]string{constant.AtAllString}, pb.MsgData.AtUserIDList) + if len(atUserID) == 0 { //just @everyone + conversationReq.UserIDList = memberUserIDList + conversation.GroupAtType = constant.AtAll + } else { //@Everyone and @other people + conversationReq.UserIDList = atUserID + conversation.GroupAtType = constant.AtAllAtMe + tag = true + } + } else { + conversationReq.UserIDList = pb.MsgData.AtUserIDList + conversation.GroupAtType = constant.AtMe } - } else { - conversationReq.UserIDList = pb.MsgData.AtUserIDList - conversation.GroupAtType = constant.AtMe - } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName) - client := pbConversation.NewConversationClient(etcdConn) - conversationReply, err := client.ModifyConversationField(context.Background(), &conversationReq) - if err != nil { - log.NewError(conversationReq.OperationID, "ModifyConversationField rpc failed, ", conversationReq.String(), err.Error()) - } else if conversationReply.CommonResp.ErrCode != 0 { - log.NewError(conversationReq.OperationID, "ModifyConversationField rpc failed, ", conversationReq.String(), conversationReply.String()) - } - if tag { - conversationReq.UserIDList = utils.DifferenceString(atUserID, memberUserIDList) - conversation.GroupAtType = constant.AtAll etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName) client := pbConversation.NewConversationClient(etcdConn) conversationReply, err := client.ModifyConversationField(context.Background(), &conversationReq) @@ -300,8 +290,19 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } else if conversationReply.CommonResp.ErrCode != 0 { log.NewError(conversationReq.OperationID, "ModifyConversationField rpc failed, ", conversationReq.String(), conversationReply.String()) } - } - + if tag { + conversationReq.UserIDList = utils.DifferenceString(atUserID, memberUserIDList) + conversation.GroupAtType = constant.AtAll + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName) + client := pbConversation.NewConversationClient(etcdConn) + conversationReply, err := client.ModifyConversationField(context.Background(), &conversationReq) + if err != nil { + log.NewError(conversationReq.OperationID, "ModifyConversationField rpc failed, ", conversationReq.String(), err.Error()) + } else if conversationReply.CommonResp.ErrCode != 0 { + log.NewError(conversationReq.OperationID, "ModifyConversationField rpc failed, ", conversationReq.String(), conversationReply.String()) + } + } + }() default: } groupID := pb.MsgData.GroupID From d1ebcde7254f75f9d6c241e13aea02ab8b994cac Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 24 Apr 2022 17:42:41 +0800 Subject: [PATCH 29/57] work_moments --- cmd/open_im_cms_api/main.go | 2 +- internal/rpc/office/office.go | 37 +- pkg/base_info/work_moments_struct.go | 9 +- pkg/common/db/mongoModel.go | 38 +- pkg/proto/office/office.pb.go | 3063 -------------------------- pkg/proto/office/office.proto | 21 +- 6 files changed, 68 insertions(+), 3102 deletions(-) delete mode 100644 pkg/proto/office/office.pb.go diff --git a/cmd/open_im_cms_api/main.go b/cmd/open_im_cms_api/main.go index 024439075..20e6380db 100644 --- a/cmd/open_im_cms_api/main.go +++ b/cmd/open_im_cms_api/main.go @@ -14,7 +14,7 @@ func main() { gin.SetMode(gin.ReleaseMode) router := cms_api.NewGinRouter() router.Use(utils.CorsHandler()) - ginPort := flag.Int("port", 8000, "get ginServerPort from cmd,default 10000 as port") + ginPort := flag.Int("port", 8000, "get ginServerPort from cmd,default 8000 as port") fmt.Println("start cms api server, port: ", ginPort) router.Run(":" + strconv.Itoa(*ginPort)) } diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index ea4095f04..e0b54dddf 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -303,6 +303,7 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea UserID: workMoment.UserID, FaceURL: createUser.FaceURL, UserName: createUser.Nickname, + CreateTime: workMoment.CreateTime, } msg.WorkMomentSendNotification(req.OperationID, workMoment.UserID, atUser.UserID, workMomentNotificationMsg) } @@ -375,13 +376,13 @@ func isUserCanSeeWorkMoment(userID string, workMoment db.WorkMoment) bool { func (s *officeServer) LikeOneWorkMoment(_ context.Context, req *pbOffice.LikeOneWorkMomentReq) (resp *pbOffice.LikeOneWorkMomentResp, err error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp = &pbOffice.LikeOneWorkMomentResp{CommonResp: &pbOffice.CommonResp{}} - userName, err := imdb.GetUserNameByUserID(req.UserID) + user, err := imdb.GetUserByUserID(req.UserID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserNameByUserID failed", err.Error()) resp.CommonResp = &pbOffice.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } - workMoment, like, err := db.DB.LikeOneWorkMoment(req.UserID, userName, req.WorkMomentID) + workMoment, like, err := db.DB.LikeOneWorkMoment(req.UserID, user.Nickname, req.WorkMomentID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "LikeOneWorkMoment failed ", err.Error()) resp.CommonResp = &pbOffice.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} @@ -391,9 +392,10 @@ func (s *officeServer) LikeOneWorkMoment(_ context.Context, req *pbOffice.LikeOn NotificationMsgType: constant.WorkMomentLikeNotification, WorkMomentID: workMoment.WorkMomentID, WorkMomentContent: workMoment.Content, - UserID: workMoment.UserID, - FaceURL: workMoment.FaceURL, - UserName: workMoment.UserName, + UserID: user.UserID, + FaceURL: user.FaceURL, + UserName: user.Nickname, + CreateTime: int32(time.Now().Unix()), } // send notification if like { @@ -442,16 +444,11 @@ func (s *officeServer) CommentOneWorkMoment(_ context.Context, req *pbOffice.Com UserID: workMoment.UserID, FaceURL: workMoment.FaceURL, UserName: workMoment.UserName, - Comment: &pbOffice.Comment{ - UserID: comment.UserID, - UserName: comment.UserName, - FaceURL: commentUser.FaceURL, - ReplyUserID: comment.ReplyUserID, - ReplyUserName: comment.ReplyUserName, - ContentID: comment.ContentID, - Content: comment.Content, - CreateTime: comment.CreateTime, - }, + ReplyUserID: comment.ReplyUserID, + ReplyUserName: comment.ReplyUserName, + ContentID: comment.ContentID, + Content: comment.Content, + CreateTime: comment.CreateTime, } msg.WorkMomentSendNotification(req.OperationID, req.UserID, workMoment.UserID, workMomentNotificationMsg) if req.ReplyUserID != "" { @@ -488,10 +485,14 @@ func (s *officeServer) GetWorkMomentByID(_ context.Context, req *pbOffice.GetWor func (s *officeServer) GetUserWorkMoments(_ context.Context, req *pbOffice.GetUserWorkMomentsReq) (resp *pbOffice.GetUserWorkMomentsResp, err error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp = &pbOffice.GetUserWorkMomentsResp{CommonResp: &pbOffice.CommonResp{}, WorkMoments: []*pbOffice.WorkMoment{}} - //resp.WorkMoments = make([]*pbOffice.WorkMoment, 0) - workMoments, err := db.DB.GetUserWorkMoments(req.UserID, req.Pagination.ShowNumber, req.Pagination.PageNumber) + var workMoments []db.WorkMoment + if req.UserID == req.OpUserID { + workMoments, err = db.DB.GetUserSelfWorkMoments(req.UserID, req.Pagination.ShowNumber, req.Pagination.PageNumber) + } else { + workMoments, err = db.DB.GetUserWorkMoments(req.OpUserID, req.UserID, req.Pagination.ShowNumber, req.Pagination.PageNumber) + } if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserWorkMoments failed", err.Error()) resp.CommonResp = &pbOffice.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } diff --git a/pkg/base_info/work_moments_struct.go b/pkg/base_info/work_moments_struct.go index ecc80f834..9ed09a832 100644 --- a/pkg/base_info/work_moments_struct.go +++ b/pkg/base_info/work_moments_struct.go @@ -50,13 +50,10 @@ type WorkMoment struct { Content string `json:"content"` LikeUserList []*WorkMomentUser `json:"likeUsers"` Comments []*Comment `json:"comments"` - FaceURL string `json:"faceUrl"` + FaceURL string `json:"faceURL"` UserName string `json:"userName"` - //Permission int32 `json:"permission"` - //PermissionUserIDList []string `json:"permissionUserIDList"` - //PermissionGroupIDList []string `json:"permissionGroupIDList"` - AtUserList []*WorkMomentUser `json:"atUsers"` - CreateTime int32 `json:"createTime"` + AtUserList []*WorkMomentUser `json:"atUsers"` + CreateTime int32 `json:"createTime"` } type WorkMomentUser struct { diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index f44799ecf..14adb3057 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -11,12 +11,14 @@ import ( "errors" "fmt" "github.com/gogo/protobuf/sortkeys" + "go.etcd.io/etcd/clientv3" + "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo/options" "math/rand" //"github.com/garyburd/redigo/redis" "github.com/golang/protobuf/proto" - "gopkg.in/mgo.v2/bson" + "go.mongodb.org/mongo-driver/bson" "strconv" "time" @@ -659,7 +661,7 @@ func (d *DataBases) CommentOneWorkMoment(comment *Comment, workMomentID string) return workMoment, err } -func (d *DataBases) GetUserWorkMoments(userID string, showNumber, pageNumber int32) ([]WorkMoment, error) { +func (d *DataBases) GetUserSelfWorkMoments(userID string, showNumber, pageNumber int32) ([]WorkMoment, error) { ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) var workMomentList []WorkMoment @@ -672,15 +674,39 @@ func (d *DataBases) GetUserWorkMoments(userID string, showNumber, pageNumber int return workMomentList, err } +func (d *DataBases) GetUserWorkMoments(opUserID, userID string, showNumber, pageNumber int32) ([]WorkMoment, error) { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) + var workMomentList []WorkMoment + findOpts := options.Find().SetLimit(int64(showNumber)).SetSkip(int64(showNumber) * (int64(pageNumber) - 1)).SetSort(bson.M{"create_time": -1}) + result, err := c.Find(ctx, bson.D{ // 等价条件: select * from + {"user_id", userID}, + {"$or", bson.A{ + bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {opUserID, bson.D{{"$in", "permission_user_id_list"}}}}, + bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {opUserID, bson.D{{"$in", "permission_user_id_list"}}}}, + bson.D{{"permission", constant.WorkMomentPublic}}, + }}, + }, findOpts) + if err != nil { + return workMomentList, nil + } + err = result.All(ctx, &workMomentList) + return workMomentList, err +} + func (d *DataBases) GetUserFriendWorkMoments(friendIDList []*string, showNumber, pageNumber int32, userID string) ([]WorkMoment, error) { ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) var workMomentList []WorkMoment findOpts := options.Find().SetLimit(int64(showNumber)).SetSkip(int64(showNumber) * (int64(pageNumber) - 1)).SetSort(bson.M{"create_time": -1}) - result, err := c.Find(ctx, - bson.M{"user_id": friendIDList, "$or": bson.M{"who_can_see_user_id_list": bson.M{"$elemMatch": bson.M{"$eq": userID}}, - "who_cant_see_user_id_list": bson.M{"$nin": userID}}, - }, findOpts) + result, err := c.Find(ctx, bson.D{ // 等价条件: select * from t where user_id in friend_id_list and () or () or (); + {"user_id", bson.D{{"$in", friendIDList}}}, + {"$or", bson.A{ + bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {userID, bson.D{{"$in", "permission_user_id_list"}}}}, + bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {userID, bson.D{{"$in", "permission_user_id_list"}}}}, + bson.D{{"permission", constant.WorkMomentPublic}}, + }}, + }, findOpts) if err != nil { return workMomentList, err } diff --git a/pkg/proto/office/office.pb.go b/pkg/proto/office/office.pb.go deleted file mode 100644 index f0a67fd91..000000000 --- a/pkg/proto/office/office.pb.go +++ /dev/null @@ -1,3063 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: office/office.proto - -package office // import "./office" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" -import sdk_ws "Open_IM/pkg/proto/sdk_ws" - -import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package - -type CommonResp 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:"-"` -} - -func (m *CommonResp) Reset() { *m = CommonResp{} } -func (m *CommonResp) String() string { return proto.CompactTextString(m) } -func (*CommonResp) ProtoMessage() {} -func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{0} -} -func (m *CommonResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommonResp.Unmarshal(m, b) -} -func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) -} -func (dst *CommonResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommonResp.Merge(dst, src) -} -func (m *CommonResp) XXX_Size() int { - return xxx_messageInfo_CommonResp.Size(m) -} -func (m *CommonResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommonResp.DiscardUnknown(m) -} - -var xxx_messageInfo_CommonResp proto.InternalMessageInfo - -func (m *CommonResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode - } - return 0 -} - -func (m *CommonResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg - } - return "" -} - -type TagUser struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TagUser) Reset() { *m = TagUser{} } -func (m *TagUser) String() string { return proto.CompactTextString(m) } -func (*TagUser) ProtoMessage() {} -func (*TagUser) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{1} -} -func (m *TagUser) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TagUser.Unmarshal(m, b) -} -func (m *TagUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TagUser.Marshal(b, m, deterministic) -} -func (dst *TagUser) XXX_Merge(src proto.Message) { - xxx_messageInfo_TagUser.Merge(dst, src) -} -func (m *TagUser) XXX_Size() int { - return xxx_messageInfo_TagUser.Size(m) -} -func (m *TagUser) XXX_DiscardUnknown() { - xxx_messageInfo_TagUser.DiscardUnknown(m) -} - -var xxx_messageInfo_TagUser proto.InternalMessageInfo - -func (m *TagUser) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *TagUser) GetUserName() string { - if m != nil { - return m.UserName - } - return "" -} - -type Tag struct { - TagID string `protobuf:"bytes,1,opt,name=tagID" json:"tagID,omitempty"` - TagName string `protobuf:"bytes,2,opt,name=tagName" json:"tagName,omitempty"` - UserList []*TagUser `protobuf:"bytes,3,rep,name=userList" json:"userList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Tag) Reset() { *m = Tag{} } -func (m *Tag) String() string { return proto.CompactTextString(m) } -func (*Tag) ProtoMessage() {} -func (*Tag) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{2} -} -func (m *Tag) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Tag.Unmarshal(m, b) -} -func (m *Tag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Tag.Marshal(b, m, deterministic) -} -func (dst *Tag) XXX_Merge(src proto.Message) { - xxx_messageInfo_Tag.Merge(dst, src) -} -func (m *Tag) XXX_Size() int { - return xxx_messageInfo_Tag.Size(m) -} -func (m *Tag) XXX_DiscardUnknown() { - xxx_messageInfo_Tag.DiscardUnknown(m) -} - -var xxx_messageInfo_Tag proto.InternalMessageInfo - -func (m *Tag) GetTagID() string { - if m != nil { - return m.TagID - } - return "" -} - -func (m *Tag) GetTagName() string { - if m != nil { - return m.TagName - } - return "" -} - -func (m *Tag) GetUserList() []*TagUser { - if m != nil { - return m.UserList - } - return nil -} - -type GetUserTagsReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserTagsReq) Reset() { *m = GetUserTagsReq{} } -func (m *GetUserTagsReq) String() string { return proto.CompactTextString(m) } -func (*GetUserTagsReq) ProtoMessage() {} -func (*GetUserTagsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{3} -} -func (m *GetUserTagsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserTagsReq.Unmarshal(m, b) -} -func (m *GetUserTagsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserTagsReq.Marshal(b, m, deterministic) -} -func (dst *GetUserTagsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserTagsReq.Merge(dst, src) -} -func (m *GetUserTagsReq) XXX_Size() int { - return xxx_messageInfo_GetUserTagsReq.Size(m) -} -func (m *GetUserTagsReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserTagsReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserTagsReq proto.InternalMessageInfo - -func (m *GetUserTagsReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *GetUserTagsReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetUserTagsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Tags []*Tag `protobuf:"bytes,2,rep,name=tags" json:"tags,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserTagsResp) Reset() { *m = GetUserTagsResp{} } -func (m *GetUserTagsResp) String() string { return proto.CompactTextString(m) } -func (*GetUserTagsResp) ProtoMessage() {} -func (*GetUserTagsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{4} -} -func (m *GetUserTagsResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserTagsResp.Unmarshal(m, b) -} -func (m *GetUserTagsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserTagsResp.Marshal(b, m, deterministic) -} -func (dst *GetUserTagsResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserTagsResp.Merge(dst, src) -} -func (m *GetUserTagsResp) XXX_Size() int { - return xxx_messageInfo_GetUserTagsResp.Size(m) -} -func (m *GetUserTagsResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserTagsResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserTagsResp proto.InternalMessageInfo - -func (m *GetUserTagsResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *GetUserTagsResp) GetTags() []*Tag { - if m != nil { - return m.Tags - } - return nil -} - -type CreateTagReq struct { - TagName string `protobuf:"bytes,1,opt,name=tagName" json:"tagName,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - UserIDList []string `protobuf:"bytes,3,rep,name=userIDList" json:"userIDList,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateTagReq) Reset() { *m = CreateTagReq{} } -func (m *CreateTagReq) String() string { return proto.CompactTextString(m) } -func (*CreateTagReq) ProtoMessage() {} -func (*CreateTagReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{5} -} -func (m *CreateTagReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateTagReq.Unmarshal(m, b) -} -func (m *CreateTagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateTagReq.Marshal(b, m, deterministic) -} -func (dst *CreateTagReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateTagReq.Merge(dst, src) -} -func (m *CreateTagReq) XXX_Size() int { - return xxx_messageInfo_CreateTagReq.Size(m) -} -func (m *CreateTagReq) XXX_DiscardUnknown() { - xxx_messageInfo_CreateTagReq.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateTagReq proto.InternalMessageInfo - -func (m *CreateTagReq) GetTagName() string { - if m != nil { - return m.TagName - } - return "" -} - -func (m *CreateTagReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *CreateTagReq) GetUserIDList() []string { - if m != nil { - return m.UserIDList - } - return nil -} - -func (m *CreateTagReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type CreateTagResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateTagResp) Reset() { *m = CreateTagResp{} } -func (m *CreateTagResp) String() string { return proto.CompactTextString(m) } -func (*CreateTagResp) ProtoMessage() {} -func (*CreateTagResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{6} -} -func (m *CreateTagResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateTagResp.Unmarshal(m, b) -} -func (m *CreateTagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateTagResp.Marshal(b, m, deterministic) -} -func (dst *CreateTagResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateTagResp.Merge(dst, src) -} -func (m *CreateTagResp) XXX_Size() int { - return xxx_messageInfo_CreateTagResp.Size(m) -} -func (m *CreateTagResp) XXX_DiscardUnknown() { - xxx_messageInfo_CreateTagResp.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateTagResp proto.InternalMessageInfo - -func (m *CreateTagResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type DeleteTagReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - TagID string `protobuf:"bytes,2,opt,name=tagID" json:"tagID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteTagReq) Reset() { *m = DeleteTagReq{} } -func (m *DeleteTagReq) String() string { return proto.CompactTextString(m) } -func (*DeleteTagReq) ProtoMessage() {} -func (*DeleteTagReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{7} -} -func (m *DeleteTagReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteTagReq.Unmarshal(m, b) -} -func (m *DeleteTagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteTagReq.Marshal(b, m, deterministic) -} -func (dst *DeleteTagReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteTagReq.Merge(dst, src) -} -func (m *DeleteTagReq) XXX_Size() int { - return xxx_messageInfo_DeleteTagReq.Size(m) -} -func (m *DeleteTagReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteTagReq.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteTagReq proto.InternalMessageInfo - -func (m *DeleteTagReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *DeleteTagReq) GetTagID() string { - if m != nil { - return m.TagID - } - return "" -} - -func (m *DeleteTagReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type DeleteTagResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteTagResp) Reset() { *m = DeleteTagResp{} } -func (m *DeleteTagResp) String() string { return proto.CompactTextString(m) } -func (*DeleteTagResp) ProtoMessage() {} -func (*DeleteTagResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{8} -} -func (m *DeleteTagResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteTagResp.Unmarshal(m, b) -} -func (m *DeleteTagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteTagResp.Marshal(b, m, deterministic) -} -func (dst *DeleteTagResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteTagResp.Merge(dst, src) -} -func (m *DeleteTagResp) XXX_Size() int { - return xxx_messageInfo_DeleteTagResp.Size(m) -} -func (m *DeleteTagResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteTagResp.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteTagResp proto.InternalMessageInfo - -func (m *DeleteTagResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type SetTagReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - TagID string `protobuf:"bytes,2,opt,name=tagID" json:"tagID,omitempty"` - NewName string `protobuf:"bytes,3,opt,name=newName" json:"newName,omitempty"` - IncreaseUserIDList []string `protobuf:"bytes,4,rep,name=increaseUserIDList" json:"increaseUserIDList,omitempty"` - ReduceUserIDList []string `protobuf:"bytes,5,rep,name=reduceUserIDList" json:"reduceUserIDList,omitempty"` - OperationID string `protobuf:"bytes,6,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetTagReq) Reset() { *m = SetTagReq{} } -func (m *SetTagReq) String() string { return proto.CompactTextString(m) } -func (*SetTagReq) ProtoMessage() {} -func (*SetTagReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{9} -} -func (m *SetTagReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetTagReq.Unmarshal(m, b) -} -func (m *SetTagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetTagReq.Marshal(b, m, deterministic) -} -func (dst *SetTagReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetTagReq.Merge(dst, src) -} -func (m *SetTagReq) XXX_Size() int { - return xxx_messageInfo_SetTagReq.Size(m) -} -func (m *SetTagReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetTagReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SetTagReq proto.InternalMessageInfo - -func (m *SetTagReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *SetTagReq) GetTagID() string { - if m != nil { - return m.TagID - } - return "" -} - -func (m *SetTagReq) GetNewName() string { - if m != nil { - return m.NewName - } - return "" -} - -func (m *SetTagReq) GetIncreaseUserIDList() []string { - if m != nil { - return m.IncreaseUserIDList - } - return nil -} - -func (m *SetTagReq) GetReduceUserIDList() []string { - if m != nil { - return m.ReduceUserIDList - } - return nil -} - -func (m *SetTagReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type SetTagResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetTagResp) Reset() { *m = SetTagResp{} } -func (m *SetTagResp) String() string { return proto.CompactTextString(m) } -func (*SetTagResp) ProtoMessage() {} -func (*SetTagResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{10} -} -func (m *SetTagResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetTagResp.Unmarshal(m, b) -} -func (m *SetTagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetTagResp.Marshal(b, m, deterministic) -} -func (dst *SetTagResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetTagResp.Merge(dst, src) -} -func (m *SetTagResp) XXX_Size() int { - return xxx_messageInfo_SetTagResp.Size(m) -} -func (m *SetTagResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetTagResp.DiscardUnknown(m) -} - -var xxx_messageInfo_SetTagResp proto.InternalMessageInfo - -func (m *SetTagResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type SendMsg2TagReq struct { - TagList []string `protobuf:"bytes,1,rep,name=tagList" json:"tagList,omitempty"` - UserList []string `protobuf:"bytes,2,rep,name=UserList" json:"UserList,omitempty"` - GroupList []string `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"` - SendID string `protobuf:"bytes,4,opt,name=sendID" json:"sendID,omitempty"` - SenderPlatformID int32 `protobuf:"varint,5,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` - Content string `protobuf:"bytes,6,opt,name=content" json:"content,omitempty"` - OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SendMsg2TagReq) Reset() { *m = SendMsg2TagReq{} } -func (m *SendMsg2TagReq) String() string { return proto.CompactTextString(m) } -func (*SendMsg2TagReq) ProtoMessage() {} -func (*SendMsg2TagReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{11} -} -func (m *SendMsg2TagReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SendMsg2TagReq.Unmarshal(m, b) -} -func (m *SendMsg2TagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SendMsg2TagReq.Marshal(b, m, deterministic) -} -func (dst *SendMsg2TagReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SendMsg2TagReq.Merge(dst, src) -} -func (m *SendMsg2TagReq) XXX_Size() int { - return xxx_messageInfo_SendMsg2TagReq.Size(m) -} -func (m *SendMsg2TagReq) XXX_DiscardUnknown() { - xxx_messageInfo_SendMsg2TagReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SendMsg2TagReq proto.InternalMessageInfo - -func (m *SendMsg2TagReq) GetTagList() []string { - if m != nil { - return m.TagList - } - return nil -} - -func (m *SendMsg2TagReq) GetUserList() []string { - if m != nil { - return m.UserList - } - return nil -} - -func (m *SendMsg2TagReq) GetGroupList() []string { - if m != nil { - return m.GroupList - } - return nil -} - -func (m *SendMsg2TagReq) GetSendID() string { - if m != nil { - return m.SendID - } - return "" -} - -func (m *SendMsg2TagReq) GetSenderPlatformID() int32 { - if m != nil { - return m.SenderPlatformID - } - return 0 -} - -func (m *SendMsg2TagReq) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *SendMsg2TagReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type SendMsg2TagResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SendMsg2TagResp) Reset() { *m = SendMsg2TagResp{} } -func (m *SendMsg2TagResp) String() string { return proto.CompactTextString(m) } -func (*SendMsg2TagResp) ProtoMessage() {} -func (*SendMsg2TagResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{12} -} -func (m *SendMsg2TagResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SendMsg2TagResp.Unmarshal(m, b) -} -func (m *SendMsg2TagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SendMsg2TagResp.Marshal(b, m, deterministic) -} -func (dst *SendMsg2TagResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SendMsg2TagResp.Merge(dst, src) -} -func (m *SendMsg2TagResp) XXX_Size() int { - return xxx_messageInfo_SendMsg2TagResp.Size(m) -} -func (m *SendMsg2TagResp) XXX_DiscardUnknown() { - xxx_messageInfo_SendMsg2TagResp.DiscardUnknown(m) -} - -var xxx_messageInfo_SendMsg2TagResp proto.InternalMessageInfo - -func (m *SendMsg2TagResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type GetTagSendLogsReq struct { - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination" json:"Pagination,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetTagSendLogsReq) Reset() { *m = GetTagSendLogsReq{} } -func (m *GetTagSendLogsReq) String() string { return proto.CompactTextString(m) } -func (*GetTagSendLogsReq) ProtoMessage() {} -func (*GetTagSendLogsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{13} -} -func (m *GetTagSendLogsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetTagSendLogsReq.Unmarshal(m, b) -} -func (m *GetTagSendLogsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetTagSendLogsReq.Marshal(b, m, deterministic) -} -func (dst *GetTagSendLogsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetTagSendLogsReq.Merge(dst, src) -} -func (m *GetTagSendLogsReq) XXX_Size() int { - return xxx_messageInfo_GetTagSendLogsReq.Size(m) -} -func (m *GetTagSendLogsReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetTagSendLogsReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetTagSendLogsReq proto.InternalMessageInfo - -func (m *GetTagSendLogsReq) GetPagination() *sdk_ws.RequestPagination { - if m != nil { - return m.Pagination - } - return nil -} - -func (m *GetTagSendLogsReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *GetTagSendLogsReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type TagSendLog struct { - UserList []*TagUser `protobuf:"bytes,1,rep,name=userList" json:"userList,omitempty"` - Content string `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"` - SendTime int64 `protobuf:"varint,3,opt,name=sendTime" json:"sendTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TagSendLog) Reset() { *m = TagSendLog{} } -func (m *TagSendLog) String() string { return proto.CompactTextString(m) } -func (*TagSendLog) ProtoMessage() {} -func (*TagSendLog) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{14} -} -func (m *TagSendLog) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TagSendLog.Unmarshal(m, b) -} -func (m *TagSendLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TagSendLog.Marshal(b, m, deterministic) -} -func (dst *TagSendLog) XXX_Merge(src proto.Message) { - xxx_messageInfo_TagSendLog.Merge(dst, src) -} -func (m *TagSendLog) XXX_Size() int { - return xxx_messageInfo_TagSendLog.Size(m) -} -func (m *TagSendLog) XXX_DiscardUnknown() { - xxx_messageInfo_TagSendLog.DiscardUnknown(m) -} - -var xxx_messageInfo_TagSendLog proto.InternalMessageInfo - -func (m *TagSendLog) GetUserList() []*TagUser { - if m != nil { - return m.UserList - } - return nil -} - -func (m *TagSendLog) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *TagSendLog) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 -} - -type GetTagSendLogsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - TagSendLogs []*TagSendLog `protobuf:"bytes,3,rep,name=tagSendLogs" json:"tagSendLogs,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetTagSendLogsResp) Reset() { *m = GetTagSendLogsResp{} } -func (m *GetTagSendLogsResp) String() string { return proto.CompactTextString(m) } -func (*GetTagSendLogsResp) ProtoMessage() {} -func (*GetTagSendLogsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{15} -} -func (m *GetTagSendLogsResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetTagSendLogsResp.Unmarshal(m, b) -} -func (m *GetTagSendLogsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetTagSendLogsResp.Marshal(b, m, deterministic) -} -func (dst *GetTagSendLogsResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetTagSendLogsResp.Merge(dst, src) -} -func (m *GetTagSendLogsResp) XXX_Size() int { - return xxx_messageInfo_GetTagSendLogsResp.Size(m) -} -func (m *GetTagSendLogsResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetTagSendLogsResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetTagSendLogsResp proto.InternalMessageInfo - -func (m *GetTagSendLogsResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *GetTagSendLogsResp) GetPagination() *sdk_ws.ResponsePagination { - if m != nil { - return m.Pagination - } - return nil -} - -func (m *GetTagSendLogsResp) GetTagSendLogs() []*TagSendLog { - if m != nil { - return m.TagSendLogs - } - return nil -} - -type GetUserTagByIDReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - TagID string `protobuf:"bytes,2,opt,name=tagID" json:"tagID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserTagByIDReq) Reset() { *m = GetUserTagByIDReq{} } -func (m *GetUserTagByIDReq) String() string { return proto.CompactTextString(m) } -func (*GetUserTagByIDReq) ProtoMessage() {} -func (*GetUserTagByIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{16} -} -func (m *GetUserTagByIDReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserTagByIDReq.Unmarshal(m, b) -} -func (m *GetUserTagByIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserTagByIDReq.Marshal(b, m, deterministic) -} -func (dst *GetUserTagByIDReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserTagByIDReq.Merge(dst, src) -} -func (m *GetUserTagByIDReq) XXX_Size() int { - return xxx_messageInfo_GetUserTagByIDReq.Size(m) -} -func (m *GetUserTagByIDReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserTagByIDReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserTagByIDReq proto.InternalMessageInfo - -func (m *GetUserTagByIDReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *GetUserTagByIDReq) GetTagID() string { - if m != nil { - return m.TagID - } - return "" -} - -func (m *GetUserTagByIDReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetUserTagByIDResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Tag *Tag `protobuf:"bytes,2,opt,name=tag" json:"tag,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserTagByIDResp) Reset() { *m = GetUserTagByIDResp{} } -func (m *GetUserTagByIDResp) String() string { return proto.CompactTextString(m) } -func (*GetUserTagByIDResp) ProtoMessage() {} -func (*GetUserTagByIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{17} -} -func (m *GetUserTagByIDResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserTagByIDResp.Unmarshal(m, b) -} -func (m *GetUserTagByIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserTagByIDResp.Marshal(b, m, deterministic) -} -func (dst *GetUserTagByIDResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserTagByIDResp.Merge(dst, src) -} -func (m *GetUserTagByIDResp) XXX_Size() int { - return xxx_messageInfo_GetUserTagByIDResp.Size(m) -} -func (m *GetUserTagByIDResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserTagByIDResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserTagByIDResp proto.InternalMessageInfo - -func (m *GetUserTagByIDResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *GetUserTagByIDResp) GetTag() *Tag { - if m != nil { - return m.Tag - } - return nil -} - -type LikeUser struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LikeUser) Reset() { *m = LikeUser{} } -func (m *LikeUser) String() string { return proto.CompactTextString(m) } -func (*LikeUser) ProtoMessage() {} -func (*LikeUser) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{18} -} -func (m *LikeUser) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LikeUser.Unmarshal(m, b) -} -func (m *LikeUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LikeUser.Marshal(b, m, deterministic) -} -func (dst *LikeUser) XXX_Merge(src proto.Message) { - xxx_messageInfo_LikeUser.Merge(dst, src) -} -func (m *LikeUser) XXX_Size() int { - return xxx_messageInfo_LikeUser.Size(m) -} -func (m *LikeUser) XXX_DiscardUnknown() { - xxx_messageInfo_LikeUser.DiscardUnknown(m) -} - -var xxx_messageInfo_LikeUser proto.InternalMessageInfo - -func (m *LikeUser) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *LikeUser) GetUserName() string { - if m != nil { - return m.UserName - } - return "" -} - -type NotificationUser struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NotificationUser) Reset() { *m = NotificationUser{} } -func (m *NotificationUser) String() string { return proto.CompactTextString(m) } -func (*NotificationUser) ProtoMessage() {} -func (*NotificationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{19} -} -func (m *NotificationUser) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NotificationUser.Unmarshal(m, b) -} -func (m *NotificationUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NotificationUser.Marshal(b, m, deterministic) -} -func (dst *NotificationUser) XXX_Merge(src proto.Message) { - xxx_messageInfo_NotificationUser.Merge(dst, src) -} -func (m *NotificationUser) XXX_Size() int { - return xxx_messageInfo_NotificationUser.Size(m) -} -func (m *NotificationUser) XXX_DiscardUnknown() { - xxx_messageInfo_NotificationUser.DiscardUnknown(m) -} - -var xxx_messageInfo_NotificationUser proto.InternalMessageInfo - -func (m *NotificationUser) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *NotificationUser) GetUserName() string { - if m != nil { - return m.UserName - } - return "" -} - -type Comment struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` - FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` - ReplyUserID string `protobuf:"bytes,4,opt,name=replyUserID" json:"replyUserID,omitempty"` - ReplyUserName string `protobuf:"bytes,5,opt,name=replyUserName" json:"replyUserName,omitempty"` - ContentID string `protobuf:"bytes,6,opt,name=contentID" json:"contentID,omitempty"` - Content string `protobuf:"bytes,7,opt,name=content" json:"content,omitempty"` - CreateTime int32 `protobuf:"varint,8,opt,name=createTime" json:"createTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Comment) Reset() { *m = Comment{} } -func (m *Comment) String() string { return proto.CompactTextString(m) } -func (*Comment) ProtoMessage() {} -func (*Comment) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{20} -} -func (m *Comment) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Comment.Unmarshal(m, b) -} -func (m *Comment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Comment.Marshal(b, m, deterministic) -} -func (dst *Comment) XXX_Merge(src proto.Message) { - xxx_messageInfo_Comment.Merge(dst, src) -} -func (m *Comment) XXX_Size() int { - return xxx_messageInfo_Comment.Size(m) -} -func (m *Comment) XXX_DiscardUnknown() { - xxx_messageInfo_Comment.DiscardUnknown(m) -} - -var xxx_messageInfo_Comment proto.InternalMessageInfo - -func (m *Comment) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *Comment) GetUserName() string { - if m != nil { - return m.UserName - } - return "" -} - -func (m *Comment) GetFaceURL() string { - if m != nil { - return m.FaceURL - } - return "" -} - -func (m *Comment) GetReplyUserID() string { - if m != nil { - return m.ReplyUserID - } - return "" -} - -func (m *Comment) GetReplyUserName() string { - if m != nil { - return m.ReplyUserName - } - return "" -} - -func (m *Comment) GetContentID() string { - if m != nil { - return m.ContentID - } - return "" -} - -func (m *Comment) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *Comment) GetCreateTime() int32 { - if m != nil { - return m.CreateTime - } - return 0 -} - -type PermissionGroup struct { - GroupName string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"` - GroupID string `protobuf:"bytes,2,opt,name=groupID" json:"groupID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PermissionGroup) Reset() { *m = PermissionGroup{} } -func (m *PermissionGroup) String() string { return proto.CompactTextString(m) } -func (*PermissionGroup) ProtoMessage() {} -func (*PermissionGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{21} -} -func (m *PermissionGroup) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PermissionGroup.Unmarshal(m, b) -} -func (m *PermissionGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PermissionGroup.Marshal(b, m, deterministic) -} -func (dst *PermissionGroup) XXX_Merge(src proto.Message) { - xxx_messageInfo_PermissionGroup.Merge(dst, src) -} -func (m *PermissionGroup) XXX_Size() int { - return xxx_messageInfo_PermissionGroup.Size(m) -} -func (m *PermissionGroup) XXX_DiscardUnknown() { - xxx_messageInfo_PermissionGroup.DiscardUnknown(m) -} - -var xxx_messageInfo_PermissionGroup proto.InternalMessageInfo - -func (m *PermissionGroup) GetGroupName() string { - if m != nil { - return m.GroupName - } - return "" -} - -func (m *PermissionGroup) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -type WorkMomentUser struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *WorkMomentUser) Reset() { *m = WorkMomentUser{} } -func (m *WorkMomentUser) String() string { return proto.CompactTextString(m) } -func (*WorkMomentUser) ProtoMessage() {} -func (*WorkMomentUser) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{22} -} -func (m *WorkMomentUser) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_WorkMomentUser.Unmarshal(m, b) -} -func (m *WorkMomentUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_WorkMomentUser.Marshal(b, m, deterministic) -} -func (dst *WorkMomentUser) XXX_Merge(src proto.Message) { - xxx_messageInfo_WorkMomentUser.Merge(dst, src) -} -func (m *WorkMomentUser) XXX_Size() int { - return xxx_messageInfo_WorkMomentUser.Size(m) -} -func (m *WorkMomentUser) XXX_DiscardUnknown() { - xxx_messageInfo_WorkMomentUser.DiscardUnknown(m) -} - -var xxx_messageInfo_WorkMomentUser proto.InternalMessageInfo - -func (m *WorkMomentUser) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *WorkMomentUser) GetUserName() string { - if m != nil { - return m.UserName - } - return "" -} - -type WorkMoment struct { - WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - UserName string `protobuf:"bytes,3,opt,name=userName" json:"userName,omitempty"` - FaceURL string `protobuf:"bytes,4,opt,name=faceURL" json:"faceURL,omitempty"` - Content string `protobuf:"bytes,5,opt,name=content" json:"content,omitempty"` - LikeUserList []*WorkMomentUser `protobuf:"bytes,6,rep,name=likeUserList" json:"likeUserList,omitempty"` - Comments []*Comment `protobuf:"bytes,7,rep,name=comments" json:"comments,omitempty"` - Permission int32 `protobuf:"varint,8,opt,name=permission" json:"permission,omitempty"` - PermissionUserList []*WorkMomentUser `protobuf:"bytes,9,rep,name=permissionUserList" json:"permissionUserList,omitempty"` - PermissionGroupList []*PermissionGroup `protobuf:"bytes,10,rep,name=permissionGroupList" json:"permissionGroupList,omitempty"` - AtUserList []*WorkMomentUser `protobuf:"bytes,11,rep,name=atUserList" json:"atUserList,omitempty"` - CreateTime int32 `protobuf:"varint,12,opt,name=createTime" json:"createTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *WorkMoment) Reset() { *m = WorkMoment{} } -func (m *WorkMoment) String() string { return proto.CompactTextString(m) } -func (*WorkMoment) ProtoMessage() {} -func (*WorkMoment) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{23} -} -func (m *WorkMoment) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_WorkMoment.Unmarshal(m, b) -} -func (m *WorkMoment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_WorkMoment.Marshal(b, m, deterministic) -} -func (dst *WorkMoment) XXX_Merge(src proto.Message) { - xxx_messageInfo_WorkMoment.Merge(dst, src) -} -func (m *WorkMoment) XXX_Size() int { - return xxx_messageInfo_WorkMoment.Size(m) -} -func (m *WorkMoment) XXX_DiscardUnknown() { - xxx_messageInfo_WorkMoment.DiscardUnknown(m) -} - -var xxx_messageInfo_WorkMoment proto.InternalMessageInfo - -func (m *WorkMoment) GetWorkMomentID() string { - if m != nil { - return m.WorkMomentID - } - return "" -} - -func (m *WorkMoment) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *WorkMoment) GetUserName() string { - if m != nil { - return m.UserName - } - return "" -} - -func (m *WorkMoment) GetFaceURL() string { - if m != nil { - return m.FaceURL - } - return "" -} - -func (m *WorkMoment) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *WorkMoment) GetLikeUserList() []*WorkMomentUser { - if m != nil { - return m.LikeUserList - } - return nil -} - -func (m *WorkMoment) GetComments() []*Comment { - if m != nil { - return m.Comments - } - return nil -} - -func (m *WorkMoment) GetPermission() int32 { - if m != nil { - return m.Permission - } - return 0 -} - -func (m *WorkMoment) GetPermissionUserList() []*WorkMomentUser { - if m != nil { - return m.PermissionUserList - } - return nil -} - -func (m *WorkMoment) GetPermissionGroupList() []*PermissionGroup { - if m != nil { - return m.PermissionGroupList - } - return nil -} - -func (m *WorkMoment) GetAtUserList() []*WorkMomentUser { - if m != nil { - return m.AtUserList - } - return nil -} - -func (m *WorkMoment) GetCreateTime() int32 { - if m != nil { - return m.CreateTime - } - return 0 -} - -type CreateOneWorkMomentReq struct { - WorkMoment *WorkMoment `protobuf:"bytes,1,opt,name=workMoment" json:"workMoment,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateOneWorkMomentReq) Reset() { *m = CreateOneWorkMomentReq{} } -func (m *CreateOneWorkMomentReq) String() string { return proto.CompactTextString(m) } -func (*CreateOneWorkMomentReq) ProtoMessage() {} -func (*CreateOneWorkMomentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{24} -} -func (m *CreateOneWorkMomentReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateOneWorkMomentReq.Unmarshal(m, b) -} -func (m *CreateOneWorkMomentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateOneWorkMomentReq.Marshal(b, m, deterministic) -} -func (dst *CreateOneWorkMomentReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateOneWorkMomentReq.Merge(dst, src) -} -func (m *CreateOneWorkMomentReq) XXX_Size() int { - return xxx_messageInfo_CreateOneWorkMomentReq.Size(m) -} -func (m *CreateOneWorkMomentReq) XXX_DiscardUnknown() { - xxx_messageInfo_CreateOneWorkMomentReq.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateOneWorkMomentReq proto.InternalMessageInfo - -func (m *CreateOneWorkMomentReq) GetWorkMoment() *WorkMoment { - if m != nil { - return m.WorkMoment - } - return nil -} - -func (m *CreateOneWorkMomentReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type CreateOneWorkMomentResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateOneWorkMomentResp) Reset() { *m = CreateOneWorkMomentResp{} } -func (m *CreateOneWorkMomentResp) String() string { return proto.CompactTextString(m) } -func (*CreateOneWorkMomentResp) ProtoMessage() {} -func (*CreateOneWorkMomentResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{25} -} -func (m *CreateOneWorkMomentResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateOneWorkMomentResp.Unmarshal(m, b) -} -func (m *CreateOneWorkMomentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateOneWorkMomentResp.Marshal(b, m, deterministic) -} -func (dst *CreateOneWorkMomentResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateOneWorkMomentResp.Merge(dst, src) -} -func (m *CreateOneWorkMomentResp) XXX_Size() int { - return xxx_messageInfo_CreateOneWorkMomentResp.Size(m) -} -func (m *CreateOneWorkMomentResp) XXX_DiscardUnknown() { - xxx_messageInfo_CreateOneWorkMomentResp.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateOneWorkMomentResp proto.InternalMessageInfo - -func (m *CreateOneWorkMomentResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type DeleteOneWorkMomentReq struct { - WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteOneWorkMomentReq) Reset() { *m = DeleteOneWorkMomentReq{} } -func (m *DeleteOneWorkMomentReq) String() string { return proto.CompactTextString(m) } -func (*DeleteOneWorkMomentReq) ProtoMessage() {} -func (*DeleteOneWorkMomentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{26} -} -func (m *DeleteOneWorkMomentReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteOneWorkMomentReq.Unmarshal(m, b) -} -func (m *DeleteOneWorkMomentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteOneWorkMomentReq.Marshal(b, m, deterministic) -} -func (dst *DeleteOneWorkMomentReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteOneWorkMomentReq.Merge(dst, src) -} -func (m *DeleteOneWorkMomentReq) XXX_Size() int { - return xxx_messageInfo_DeleteOneWorkMomentReq.Size(m) -} -func (m *DeleteOneWorkMomentReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteOneWorkMomentReq.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteOneWorkMomentReq proto.InternalMessageInfo - -func (m *DeleteOneWorkMomentReq) GetWorkMomentID() string { - if m != nil { - return m.WorkMomentID - } - return "" -} - -func (m *DeleteOneWorkMomentReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *DeleteOneWorkMomentReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type DeleteOneWorkMomentResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteOneWorkMomentResp) Reset() { *m = DeleteOneWorkMomentResp{} } -func (m *DeleteOneWorkMomentResp) String() string { return proto.CompactTextString(m) } -func (*DeleteOneWorkMomentResp) ProtoMessage() {} -func (*DeleteOneWorkMomentResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{27} -} -func (m *DeleteOneWorkMomentResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteOneWorkMomentResp.Unmarshal(m, b) -} -func (m *DeleteOneWorkMomentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteOneWorkMomentResp.Marshal(b, m, deterministic) -} -func (dst *DeleteOneWorkMomentResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteOneWorkMomentResp.Merge(dst, src) -} -func (m *DeleteOneWorkMomentResp) XXX_Size() int { - return xxx_messageInfo_DeleteOneWorkMomentResp.Size(m) -} -func (m *DeleteOneWorkMomentResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteOneWorkMomentResp.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteOneWorkMomentResp proto.InternalMessageInfo - -func (m *DeleteOneWorkMomentResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type LikeOneWorkMomentReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - WorkMomentID string `protobuf:"bytes,2,opt,name=WorkMomentID" json:"WorkMomentID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LikeOneWorkMomentReq) Reset() { *m = LikeOneWorkMomentReq{} } -func (m *LikeOneWorkMomentReq) String() string { return proto.CompactTextString(m) } -func (*LikeOneWorkMomentReq) ProtoMessage() {} -func (*LikeOneWorkMomentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{28} -} -func (m *LikeOneWorkMomentReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LikeOneWorkMomentReq.Unmarshal(m, b) -} -func (m *LikeOneWorkMomentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LikeOneWorkMomentReq.Marshal(b, m, deterministic) -} -func (dst *LikeOneWorkMomentReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_LikeOneWorkMomentReq.Merge(dst, src) -} -func (m *LikeOneWorkMomentReq) XXX_Size() int { - return xxx_messageInfo_LikeOneWorkMomentReq.Size(m) -} -func (m *LikeOneWorkMomentReq) XXX_DiscardUnknown() { - xxx_messageInfo_LikeOneWorkMomentReq.DiscardUnknown(m) -} - -var xxx_messageInfo_LikeOneWorkMomentReq proto.InternalMessageInfo - -func (m *LikeOneWorkMomentReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *LikeOneWorkMomentReq) GetWorkMomentID() string { - if m != nil { - return m.WorkMomentID - } - return "" -} - -func (m *LikeOneWorkMomentReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type LikeOneWorkMomentResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LikeOneWorkMomentResp) Reset() { *m = LikeOneWorkMomentResp{} } -func (m *LikeOneWorkMomentResp) String() string { return proto.CompactTextString(m) } -func (*LikeOneWorkMomentResp) ProtoMessage() {} -func (*LikeOneWorkMomentResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{29} -} -func (m *LikeOneWorkMomentResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LikeOneWorkMomentResp.Unmarshal(m, b) -} -func (m *LikeOneWorkMomentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LikeOneWorkMomentResp.Marshal(b, m, deterministic) -} -func (dst *LikeOneWorkMomentResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_LikeOneWorkMomentResp.Merge(dst, src) -} -func (m *LikeOneWorkMomentResp) XXX_Size() int { - return xxx_messageInfo_LikeOneWorkMomentResp.Size(m) -} -func (m *LikeOneWorkMomentResp) XXX_DiscardUnknown() { - xxx_messageInfo_LikeOneWorkMomentResp.DiscardUnknown(m) -} - -var xxx_messageInfo_LikeOneWorkMomentResp proto.InternalMessageInfo - -func (m *LikeOneWorkMomentResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type CommentOneWorkMomentReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - WorkMomentID string `protobuf:"bytes,2,opt,name=workMomentID" json:"workMomentID,omitempty"` - ReplyUserID string `protobuf:"bytes,3,opt,name=replyUserID" json:"replyUserID,omitempty"` - Content string `protobuf:"bytes,4,opt,name=content" json:"content,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CommentOneWorkMomentReq) Reset() { *m = CommentOneWorkMomentReq{} } -func (m *CommentOneWorkMomentReq) String() string { return proto.CompactTextString(m) } -func (*CommentOneWorkMomentReq) ProtoMessage() {} -func (*CommentOneWorkMomentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{30} -} -func (m *CommentOneWorkMomentReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommentOneWorkMomentReq.Unmarshal(m, b) -} -func (m *CommentOneWorkMomentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CommentOneWorkMomentReq.Marshal(b, m, deterministic) -} -func (dst *CommentOneWorkMomentReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommentOneWorkMomentReq.Merge(dst, src) -} -func (m *CommentOneWorkMomentReq) XXX_Size() int { - return xxx_messageInfo_CommentOneWorkMomentReq.Size(m) -} -func (m *CommentOneWorkMomentReq) XXX_DiscardUnknown() { - xxx_messageInfo_CommentOneWorkMomentReq.DiscardUnknown(m) -} - -var xxx_messageInfo_CommentOneWorkMomentReq proto.InternalMessageInfo - -func (m *CommentOneWorkMomentReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *CommentOneWorkMomentReq) GetWorkMomentID() string { - if m != nil { - return m.WorkMomentID - } - return "" -} - -func (m *CommentOneWorkMomentReq) GetReplyUserID() string { - if m != nil { - return m.ReplyUserID - } - return "" -} - -func (m *CommentOneWorkMomentReq) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *CommentOneWorkMomentReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type CommentOneWorkMomentResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CommentOneWorkMomentResp) Reset() { *m = CommentOneWorkMomentResp{} } -func (m *CommentOneWorkMomentResp) String() string { return proto.CompactTextString(m) } -func (*CommentOneWorkMomentResp) ProtoMessage() {} -func (*CommentOneWorkMomentResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{31} -} -func (m *CommentOneWorkMomentResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommentOneWorkMomentResp.Unmarshal(m, b) -} -func (m *CommentOneWorkMomentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CommentOneWorkMomentResp.Marshal(b, m, deterministic) -} -func (dst *CommentOneWorkMomentResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommentOneWorkMomentResp.Merge(dst, src) -} -func (m *CommentOneWorkMomentResp) XXX_Size() int { - return xxx_messageInfo_CommentOneWorkMomentResp.Size(m) -} -func (m *CommentOneWorkMomentResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommentOneWorkMomentResp.DiscardUnknown(m) -} - -var xxx_messageInfo_CommentOneWorkMomentResp proto.InternalMessageInfo - -func (m *CommentOneWorkMomentResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type GetWorkMomentByIDReq struct { - WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,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:"-"` -} - -func (m *GetWorkMomentByIDReq) Reset() { *m = GetWorkMomentByIDReq{} } -func (m *GetWorkMomentByIDReq) String() string { return proto.CompactTextString(m) } -func (*GetWorkMomentByIDReq) ProtoMessage() {} -func (*GetWorkMomentByIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{32} -} -func (m *GetWorkMomentByIDReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetWorkMomentByIDReq.Unmarshal(m, b) -} -func (m *GetWorkMomentByIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetWorkMomentByIDReq.Marshal(b, m, deterministic) -} -func (dst *GetWorkMomentByIDReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetWorkMomentByIDReq.Merge(dst, src) -} -func (m *GetWorkMomentByIDReq) XXX_Size() int { - return xxx_messageInfo_GetWorkMomentByIDReq.Size(m) -} -func (m *GetWorkMomentByIDReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetWorkMomentByIDReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetWorkMomentByIDReq proto.InternalMessageInfo - -func (m *GetWorkMomentByIDReq) GetWorkMomentID() string { - if m != nil { - return m.WorkMomentID - } - return "" -} - -func (m *GetWorkMomentByIDReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *GetWorkMomentByIDReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetWorkMomentByIDResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - WorkMoment *WorkMoment `protobuf:"bytes,2,opt,name=workMoment" json:"workMoment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetWorkMomentByIDResp) Reset() { *m = GetWorkMomentByIDResp{} } -func (m *GetWorkMomentByIDResp) String() string { return proto.CompactTextString(m) } -func (*GetWorkMomentByIDResp) ProtoMessage() {} -func (*GetWorkMomentByIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{33} -} -func (m *GetWorkMomentByIDResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetWorkMomentByIDResp.Unmarshal(m, b) -} -func (m *GetWorkMomentByIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetWorkMomentByIDResp.Marshal(b, m, deterministic) -} -func (dst *GetWorkMomentByIDResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetWorkMomentByIDResp.Merge(dst, src) -} -func (m *GetWorkMomentByIDResp) XXX_Size() int { - return xxx_messageInfo_GetWorkMomentByIDResp.Size(m) -} -func (m *GetWorkMomentByIDResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetWorkMomentByIDResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetWorkMomentByIDResp proto.InternalMessageInfo - -func (m *GetWorkMomentByIDResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *GetWorkMomentByIDResp) GetWorkMoment() *WorkMoment { - if m != nil { - return m.WorkMoment - } - return nil -} - -type ChangeWorkMomentPermissionReq struct { - WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"` - Permission int32 `protobuf:"varint,3,opt,name=permission" json:"permission,omitempty"` - PermissionUserIDList []string `protobuf:"bytes,4,rep,name=permissionUserIDList" json:"permissionUserIDList,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ChangeWorkMomentPermissionReq) Reset() { *m = ChangeWorkMomentPermissionReq{} } -func (m *ChangeWorkMomentPermissionReq) String() string { return proto.CompactTextString(m) } -func (*ChangeWorkMomentPermissionReq) ProtoMessage() {} -func (*ChangeWorkMomentPermissionReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{34} -} -func (m *ChangeWorkMomentPermissionReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ChangeWorkMomentPermissionReq.Unmarshal(m, b) -} -func (m *ChangeWorkMomentPermissionReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ChangeWorkMomentPermissionReq.Marshal(b, m, deterministic) -} -func (dst *ChangeWorkMomentPermissionReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_ChangeWorkMomentPermissionReq.Merge(dst, src) -} -func (m *ChangeWorkMomentPermissionReq) XXX_Size() int { - return xxx_messageInfo_ChangeWorkMomentPermissionReq.Size(m) -} -func (m *ChangeWorkMomentPermissionReq) XXX_DiscardUnknown() { - xxx_messageInfo_ChangeWorkMomentPermissionReq.DiscardUnknown(m) -} - -var xxx_messageInfo_ChangeWorkMomentPermissionReq proto.InternalMessageInfo - -func (m *ChangeWorkMomentPermissionReq) GetWorkMomentID() string { - if m != nil { - return m.WorkMomentID - } - return "" -} - -func (m *ChangeWorkMomentPermissionReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *ChangeWorkMomentPermissionReq) GetPermission() int32 { - if m != nil { - return m.Permission - } - return 0 -} - -func (m *ChangeWorkMomentPermissionReq) GetPermissionUserIDList() []string { - if m != nil { - return m.PermissionUserIDList - } - return nil -} - -func (m *ChangeWorkMomentPermissionReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type ChangeWorkMomentPermissionResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ChangeWorkMomentPermissionResp) Reset() { *m = ChangeWorkMomentPermissionResp{} } -func (m *ChangeWorkMomentPermissionResp) String() string { return proto.CompactTextString(m) } -func (*ChangeWorkMomentPermissionResp) ProtoMessage() {} -func (*ChangeWorkMomentPermissionResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{35} -} -func (m *ChangeWorkMomentPermissionResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ChangeWorkMomentPermissionResp.Unmarshal(m, b) -} -func (m *ChangeWorkMomentPermissionResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ChangeWorkMomentPermissionResp.Marshal(b, m, deterministic) -} -func (dst *ChangeWorkMomentPermissionResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_ChangeWorkMomentPermissionResp.Merge(dst, src) -} -func (m *ChangeWorkMomentPermissionResp) XXX_Size() int { - return xxx_messageInfo_ChangeWorkMomentPermissionResp.Size(m) -} -func (m *ChangeWorkMomentPermissionResp) XXX_DiscardUnknown() { - xxx_messageInfo_ChangeWorkMomentPermissionResp.DiscardUnknown(m) -} - -var xxx_messageInfo_ChangeWorkMomentPermissionResp proto.InternalMessageInfo - -func (m *ChangeWorkMomentPermissionResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type GetUserWorkMomentsReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserWorkMomentsReq) Reset() { *m = GetUserWorkMomentsReq{} } -func (m *GetUserWorkMomentsReq) String() string { return proto.CompactTextString(m) } -func (*GetUserWorkMomentsReq) ProtoMessage() {} -func (*GetUserWorkMomentsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{36} -} -func (m *GetUserWorkMomentsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserWorkMomentsReq.Unmarshal(m, b) -} -func (m *GetUserWorkMomentsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserWorkMomentsReq.Marshal(b, m, deterministic) -} -func (dst *GetUserWorkMomentsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserWorkMomentsReq.Merge(dst, src) -} -func (m *GetUserWorkMomentsReq) XXX_Size() int { - return xxx_messageInfo_GetUserWorkMomentsReq.Size(m) -} -func (m *GetUserWorkMomentsReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserWorkMomentsReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserWorkMomentsReq proto.InternalMessageInfo - -func (m *GetUserWorkMomentsReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *GetUserWorkMomentsReq) GetPagination() *sdk_ws.RequestPagination { - if m != nil { - return m.Pagination - } - return nil -} - -func (m *GetUserWorkMomentsReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetUserWorkMomentsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - WorkMoments []*WorkMoment `protobuf:"bytes,2,rep,name=workMoments" json:"workMoments,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserWorkMomentsResp) Reset() { *m = GetUserWorkMomentsResp{} } -func (m *GetUserWorkMomentsResp) String() string { return proto.CompactTextString(m) } -func (*GetUserWorkMomentsResp) ProtoMessage() {} -func (*GetUserWorkMomentsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{37} -} -func (m *GetUserWorkMomentsResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserWorkMomentsResp.Unmarshal(m, b) -} -func (m *GetUserWorkMomentsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserWorkMomentsResp.Marshal(b, m, deterministic) -} -func (dst *GetUserWorkMomentsResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserWorkMomentsResp.Merge(dst, src) -} -func (m *GetUserWorkMomentsResp) XXX_Size() int { - return xxx_messageInfo_GetUserWorkMomentsResp.Size(m) -} -func (m *GetUserWorkMomentsResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserWorkMomentsResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserWorkMomentsResp proto.InternalMessageInfo - -func (m *GetUserWorkMomentsResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *GetUserWorkMomentsResp) GetWorkMoments() []*WorkMoment { - if m != nil { - return m.WorkMoments - } - return nil -} - -func (m *GetUserWorkMomentsResp) GetPagination() *sdk_ws.ResponsePagination { - if m != nil { - return m.Pagination - } - return nil -} - -type GetUserFriendWorkMomentsReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserFriendWorkMomentsReq) Reset() { *m = GetUserFriendWorkMomentsReq{} } -func (m *GetUserFriendWorkMomentsReq) String() string { return proto.CompactTextString(m) } -func (*GetUserFriendWorkMomentsReq) ProtoMessage() {} -func (*GetUserFriendWorkMomentsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{38} -} -func (m *GetUserFriendWorkMomentsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserFriendWorkMomentsReq.Unmarshal(m, b) -} -func (m *GetUserFriendWorkMomentsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserFriendWorkMomentsReq.Marshal(b, m, deterministic) -} -func (dst *GetUserFriendWorkMomentsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserFriendWorkMomentsReq.Merge(dst, src) -} -func (m *GetUserFriendWorkMomentsReq) XXX_Size() int { - return xxx_messageInfo_GetUserFriendWorkMomentsReq.Size(m) -} -func (m *GetUserFriendWorkMomentsReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserFriendWorkMomentsReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserFriendWorkMomentsReq proto.InternalMessageInfo - -func (m *GetUserFriendWorkMomentsReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *GetUserFriendWorkMomentsReq) GetPagination() *sdk_ws.RequestPagination { - if m != nil { - return m.Pagination - } - return nil -} - -func (m *GetUserFriendWorkMomentsReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetUserFriendWorkMomentsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - WorkMoments []*WorkMoment `protobuf:"bytes,2,rep,name=workMoments" json:"workMoments,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserFriendWorkMomentsResp) Reset() { *m = GetUserFriendWorkMomentsResp{} } -func (m *GetUserFriendWorkMomentsResp) String() string { return proto.CompactTextString(m) } -func (*GetUserFriendWorkMomentsResp) ProtoMessage() {} -func (*GetUserFriendWorkMomentsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{39} -} -func (m *GetUserFriendWorkMomentsResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserFriendWorkMomentsResp.Unmarshal(m, b) -} -func (m *GetUserFriendWorkMomentsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserFriendWorkMomentsResp.Marshal(b, m, deterministic) -} -func (dst *GetUserFriendWorkMomentsResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserFriendWorkMomentsResp.Merge(dst, src) -} -func (m *GetUserFriendWorkMomentsResp) XXX_Size() int { - return xxx_messageInfo_GetUserFriendWorkMomentsResp.Size(m) -} -func (m *GetUserFriendWorkMomentsResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserFriendWorkMomentsResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserFriendWorkMomentsResp proto.InternalMessageInfo - -func (m *GetUserFriendWorkMomentsResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *GetUserFriendWorkMomentsResp) GetWorkMoments() []*WorkMoment { - if m != nil { - return m.WorkMoments - } - return nil -} - -func (m *GetUserFriendWorkMomentsResp) GetPagination() *sdk_ws.ResponsePagination { - if m != nil { - return m.Pagination - } - return nil -} - -type WorkMomentNotificationMsg struct { - NotificationMsgType int32 `protobuf:"varint,1,opt,name=notificationMsgType" json:"notificationMsgType,omitempty"` - Comment *Comment `protobuf:"bytes,2,opt,name=comment" json:"comment,omitempty"` - WorkMomentID string `protobuf:"bytes,3,opt,name=workMomentID" json:"workMomentID,omitempty"` - UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` - UserName string `protobuf:"bytes,5,opt,name=userName" json:"userName,omitempty"` - FaceURL string `protobuf:"bytes,6,opt,name=faceURL" json:"faceURL,omitempty"` - WorkMomentContent string `protobuf:"bytes,7,opt,name=workMomentContent" json:"workMomentContent,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *WorkMomentNotificationMsg) Reset() { *m = WorkMomentNotificationMsg{} } -func (m *WorkMomentNotificationMsg) String() string { return proto.CompactTextString(m) } -func (*WorkMomentNotificationMsg) ProtoMessage() {} -func (*WorkMomentNotificationMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{40} -} -func (m *WorkMomentNotificationMsg) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_WorkMomentNotificationMsg.Unmarshal(m, b) -} -func (m *WorkMomentNotificationMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_WorkMomentNotificationMsg.Marshal(b, m, deterministic) -} -func (dst *WorkMomentNotificationMsg) XXX_Merge(src proto.Message) { - xxx_messageInfo_WorkMomentNotificationMsg.Merge(dst, src) -} -func (m *WorkMomentNotificationMsg) XXX_Size() int { - return xxx_messageInfo_WorkMomentNotificationMsg.Size(m) -} -func (m *WorkMomentNotificationMsg) XXX_DiscardUnknown() { - xxx_messageInfo_WorkMomentNotificationMsg.DiscardUnknown(m) -} - -var xxx_messageInfo_WorkMomentNotificationMsg proto.InternalMessageInfo - -func (m *WorkMomentNotificationMsg) GetNotificationMsgType() int32 { - if m != nil { - return m.NotificationMsgType - } - return 0 -} - -func (m *WorkMomentNotificationMsg) GetComment() *Comment { - if m != nil { - return m.Comment - } - return nil -} - -func (m *WorkMomentNotificationMsg) GetWorkMomentID() string { - if m != nil { - return m.WorkMomentID - } - return "" -} - -func (m *WorkMomentNotificationMsg) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *WorkMomentNotificationMsg) GetUserName() string { - if m != nil { - return m.UserName - } - return "" -} - -func (m *WorkMomentNotificationMsg) GetFaceURL() string { - if m != nil { - return m.FaceURL - } - return "" -} - -func (m *WorkMomentNotificationMsg) GetWorkMomentContent() string { - if m != nil { - return m.WorkMomentContent - } - return "" -} - -type SetUserWorkMomentsLevelReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - Level int32 `protobuf:"varint,2,opt,name=level" json:"level,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetUserWorkMomentsLevelReq) Reset() { *m = SetUserWorkMomentsLevelReq{} } -func (m *SetUserWorkMomentsLevelReq) String() string { return proto.CompactTextString(m) } -func (*SetUserWorkMomentsLevelReq) ProtoMessage() {} -func (*SetUserWorkMomentsLevelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{41} -} -func (m *SetUserWorkMomentsLevelReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetUserWorkMomentsLevelReq.Unmarshal(m, b) -} -func (m *SetUserWorkMomentsLevelReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetUserWorkMomentsLevelReq.Marshal(b, m, deterministic) -} -func (dst *SetUserWorkMomentsLevelReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetUserWorkMomentsLevelReq.Merge(dst, src) -} -func (m *SetUserWorkMomentsLevelReq) XXX_Size() int { - return xxx_messageInfo_SetUserWorkMomentsLevelReq.Size(m) -} -func (m *SetUserWorkMomentsLevelReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetUserWorkMomentsLevelReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SetUserWorkMomentsLevelReq proto.InternalMessageInfo - -func (m *SetUserWorkMomentsLevelReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *SetUserWorkMomentsLevelReq) GetLevel() int32 { - if m != nil { - return m.Level - } - return 0 -} - -func (m *SetUserWorkMomentsLevelReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type SetUserWorkMomentsLevelResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetUserWorkMomentsLevelResp) Reset() { *m = SetUserWorkMomentsLevelResp{} } -func (m *SetUserWorkMomentsLevelResp) String() string { return proto.CompactTextString(m) } -func (*SetUserWorkMomentsLevelResp) ProtoMessage() {} -func (*SetUserWorkMomentsLevelResp) Descriptor() ([]byte, []int) { - return fileDescriptor_office_02f43b66ea327245, []int{42} -} -func (m *SetUserWorkMomentsLevelResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetUserWorkMomentsLevelResp.Unmarshal(m, b) -} -func (m *SetUserWorkMomentsLevelResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetUserWorkMomentsLevelResp.Marshal(b, m, deterministic) -} -func (dst *SetUserWorkMomentsLevelResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetUserWorkMomentsLevelResp.Merge(dst, src) -} -func (m *SetUserWorkMomentsLevelResp) XXX_Size() int { - return xxx_messageInfo_SetUserWorkMomentsLevelResp.Size(m) -} -func (m *SetUserWorkMomentsLevelResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetUserWorkMomentsLevelResp.DiscardUnknown(m) -} - -var xxx_messageInfo_SetUserWorkMomentsLevelResp proto.InternalMessageInfo - -func (m *SetUserWorkMomentsLevelResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func init() { - proto.RegisterType((*CommonResp)(nil), "office.CommonResp") - proto.RegisterType((*TagUser)(nil), "office.TagUser") - proto.RegisterType((*Tag)(nil), "office.Tag") - proto.RegisterType((*GetUserTagsReq)(nil), "office.GetUserTagsReq") - proto.RegisterType((*GetUserTagsResp)(nil), "office.GetUserTagsResp") - proto.RegisterType((*CreateTagReq)(nil), "office.CreateTagReq") - proto.RegisterType((*CreateTagResp)(nil), "office.CreateTagResp") - proto.RegisterType((*DeleteTagReq)(nil), "office.DeleteTagReq") - proto.RegisterType((*DeleteTagResp)(nil), "office.DeleteTagResp") - proto.RegisterType((*SetTagReq)(nil), "office.SetTagReq") - proto.RegisterType((*SetTagResp)(nil), "office.SetTagResp") - proto.RegisterType((*SendMsg2TagReq)(nil), "office.SendMsg2TagReq") - proto.RegisterType((*SendMsg2TagResp)(nil), "office.SendMsg2TagResp") - proto.RegisterType((*GetTagSendLogsReq)(nil), "office.GetTagSendLogsReq") - proto.RegisterType((*TagSendLog)(nil), "office.TagSendLog") - proto.RegisterType((*GetTagSendLogsResp)(nil), "office.GetTagSendLogsResp") - proto.RegisterType((*GetUserTagByIDReq)(nil), "office.GetUserTagByIDReq") - proto.RegisterType((*GetUserTagByIDResp)(nil), "office.GetUserTagByIDResp") - proto.RegisterType((*LikeUser)(nil), "office.LikeUser") - proto.RegisterType((*NotificationUser)(nil), "office.NotificationUser") - proto.RegisterType((*Comment)(nil), "office.Comment") - proto.RegisterType((*PermissionGroup)(nil), "office.PermissionGroup") - proto.RegisterType((*WorkMomentUser)(nil), "office.WorkMomentUser") - proto.RegisterType((*WorkMoment)(nil), "office.WorkMoment") - proto.RegisterType((*CreateOneWorkMomentReq)(nil), "office.CreateOneWorkMomentReq") - proto.RegisterType((*CreateOneWorkMomentResp)(nil), "office.CreateOneWorkMomentResp") - proto.RegisterType((*DeleteOneWorkMomentReq)(nil), "office.DeleteOneWorkMomentReq") - proto.RegisterType((*DeleteOneWorkMomentResp)(nil), "office.DeleteOneWorkMomentResp") - proto.RegisterType((*LikeOneWorkMomentReq)(nil), "office.LikeOneWorkMomentReq") - proto.RegisterType((*LikeOneWorkMomentResp)(nil), "office.LikeOneWorkMomentResp") - proto.RegisterType((*CommentOneWorkMomentReq)(nil), "office.CommentOneWorkMomentReq") - proto.RegisterType((*CommentOneWorkMomentResp)(nil), "office.CommentOneWorkMomentResp") - proto.RegisterType((*GetWorkMomentByIDReq)(nil), "office.GetWorkMomentByIDReq") - proto.RegisterType((*GetWorkMomentByIDResp)(nil), "office.GetWorkMomentByIDResp") - proto.RegisterType((*ChangeWorkMomentPermissionReq)(nil), "office.ChangeWorkMomentPermissionReq") - proto.RegisterType((*ChangeWorkMomentPermissionResp)(nil), "office.ChangeWorkMomentPermissionResp") - proto.RegisterType((*GetUserWorkMomentsReq)(nil), "office.GetUserWorkMomentsReq") - proto.RegisterType((*GetUserWorkMomentsResp)(nil), "office.GetUserWorkMomentsResp") - proto.RegisterType((*GetUserFriendWorkMomentsReq)(nil), "office.GetUserFriendWorkMomentsReq") - proto.RegisterType((*GetUserFriendWorkMomentsResp)(nil), "office.GetUserFriendWorkMomentsResp") - proto.RegisterType((*WorkMomentNotificationMsg)(nil), "office.WorkMomentNotificationMsg") - proto.RegisterType((*SetUserWorkMomentsLevelReq)(nil), "office.SetUserWorkMomentsLevelReq") - proto.RegisterType((*SetUserWorkMomentsLevelResp)(nil), "office.SetUserWorkMomentsLevelResp") -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// Client API for OfficeService service - -type OfficeServiceClient interface { - GetUserTags(ctx context.Context, in *GetUserTagsReq, opts ...grpc.CallOption) (*GetUserTagsResp, error) - CreateTag(ctx context.Context, in *CreateTagReq, opts ...grpc.CallOption) (*CreateTagResp, error) - DeleteTag(ctx context.Context, in *DeleteTagReq, opts ...grpc.CallOption) (*DeleteTagResp, error) - SetTag(ctx context.Context, in *SetTagReq, opts ...grpc.CallOption) (*SetTagResp, error) - SendMsg2Tag(ctx context.Context, in *SendMsg2TagReq, opts ...grpc.CallOption) (*SendMsg2TagResp, error) - GetTagSendLogs(ctx context.Context, in *GetTagSendLogsReq, opts ...grpc.CallOption) (*GetTagSendLogsResp, error) - GetUserTagByID(ctx context.Context, in *GetUserTagByIDReq, opts ...grpc.CallOption) (*GetUserTagByIDResp, error) - CreateOneWorkMoment(ctx context.Context, in *CreateOneWorkMomentReq, opts ...grpc.CallOption) (*CreateOneWorkMomentResp, error) - DeleteOneWorkMoment(ctx context.Context, in *DeleteOneWorkMomentReq, opts ...grpc.CallOption) (*DeleteOneWorkMomentResp, error) - LikeOneWorkMoment(ctx context.Context, in *LikeOneWorkMomentReq, opts ...grpc.CallOption) (*LikeOneWorkMomentResp, error) - CommentOneWorkMoment(ctx context.Context, in *CommentOneWorkMomentReq, opts ...grpc.CallOption) (*CommentOneWorkMomentResp, error) - GetWorkMomentByID(ctx context.Context, in *GetWorkMomentByIDReq, opts ...grpc.CallOption) (*GetWorkMomentByIDResp, error) - ChangeWorkMomentPermission(ctx context.Context, in *ChangeWorkMomentPermissionReq, opts ...grpc.CallOption) (*ChangeWorkMomentPermissionResp, error) - // / user self - GetUserWorkMoments(ctx context.Context, in *GetUserWorkMomentsReq, opts ...grpc.CallOption) (*GetUserWorkMomentsResp, error) - // / users friend - GetUserFriendWorkMoments(ctx context.Context, in *GetUserFriendWorkMomentsReq, opts ...grpc.CallOption) (*GetUserFriendWorkMomentsResp, error) - SetUserWorkMomentsLevel(ctx context.Context, in *SetUserWorkMomentsLevelReq, opts ...grpc.CallOption) (*SetUserWorkMomentsLevelResp, error) -} - -type officeServiceClient struct { - cc *grpc.ClientConn -} - -func NewOfficeServiceClient(cc *grpc.ClientConn) OfficeServiceClient { - return &officeServiceClient{cc} -} - -func (c *officeServiceClient) GetUserTags(ctx context.Context, in *GetUserTagsReq, opts ...grpc.CallOption) (*GetUserTagsResp, error) { - out := new(GetUserTagsResp) - err := grpc.Invoke(ctx, "/office.OfficeService/GetUserTags", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) CreateTag(ctx context.Context, in *CreateTagReq, opts ...grpc.CallOption) (*CreateTagResp, error) { - out := new(CreateTagResp) - err := grpc.Invoke(ctx, "/office.OfficeService/CreateTag", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) DeleteTag(ctx context.Context, in *DeleteTagReq, opts ...grpc.CallOption) (*DeleteTagResp, error) { - out := new(DeleteTagResp) - err := grpc.Invoke(ctx, "/office.OfficeService/DeleteTag", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) SetTag(ctx context.Context, in *SetTagReq, opts ...grpc.CallOption) (*SetTagResp, error) { - out := new(SetTagResp) - err := grpc.Invoke(ctx, "/office.OfficeService/SetTag", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) SendMsg2Tag(ctx context.Context, in *SendMsg2TagReq, opts ...grpc.CallOption) (*SendMsg2TagResp, error) { - out := new(SendMsg2TagResp) - err := grpc.Invoke(ctx, "/office.OfficeService/SendMsg2Tag", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) GetTagSendLogs(ctx context.Context, in *GetTagSendLogsReq, opts ...grpc.CallOption) (*GetTagSendLogsResp, error) { - out := new(GetTagSendLogsResp) - err := grpc.Invoke(ctx, "/office.OfficeService/GetTagSendLogs", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) GetUserTagByID(ctx context.Context, in *GetUserTagByIDReq, opts ...grpc.CallOption) (*GetUserTagByIDResp, error) { - out := new(GetUserTagByIDResp) - err := grpc.Invoke(ctx, "/office.OfficeService/GetUserTagByID", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) CreateOneWorkMoment(ctx context.Context, in *CreateOneWorkMomentReq, opts ...grpc.CallOption) (*CreateOneWorkMomentResp, error) { - out := new(CreateOneWorkMomentResp) - err := grpc.Invoke(ctx, "/office.OfficeService/CreateOneWorkMoment", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) DeleteOneWorkMoment(ctx context.Context, in *DeleteOneWorkMomentReq, opts ...grpc.CallOption) (*DeleteOneWorkMomentResp, error) { - out := new(DeleteOneWorkMomentResp) - err := grpc.Invoke(ctx, "/office.OfficeService/DeleteOneWorkMoment", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) LikeOneWorkMoment(ctx context.Context, in *LikeOneWorkMomentReq, opts ...grpc.CallOption) (*LikeOneWorkMomentResp, error) { - out := new(LikeOneWorkMomentResp) - err := grpc.Invoke(ctx, "/office.OfficeService/LikeOneWorkMoment", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) CommentOneWorkMoment(ctx context.Context, in *CommentOneWorkMomentReq, opts ...grpc.CallOption) (*CommentOneWorkMomentResp, error) { - out := new(CommentOneWorkMomentResp) - err := grpc.Invoke(ctx, "/office.OfficeService/CommentOneWorkMoment", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) GetWorkMomentByID(ctx context.Context, in *GetWorkMomentByIDReq, opts ...grpc.CallOption) (*GetWorkMomentByIDResp, error) { - out := new(GetWorkMomentByIDResp) - err := grpc.Invoke(ctx, "/office.OfficeService/GetWorkMomentByID", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) ChangeWorkMomentPermission(ctx context.Context, in *ChangeWorkMomentPermissionReq, opts ...grpc.CallOption) (*ChangeWorkMomentPermissionResp, error) { - out := new(ChangeWorkMomentPermissionResp) - err := grpc.Invoke(ctx, "/office.OfficeService/ChangeWorkMomentPermission", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) GetUserWorkMoments(ctx context.Context, in *GetUserWorkMomentsReq, opts ...grpc.CallOption) (*GetUserWorkMomentsResp, error) { - out := new(GetUserWorkMomentsResp) - err := grpc.Invoke(ctx, "/office.OfficeService/GetUserWorkMoments", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) GetUserFriendWorkMoments(ctx context.Context, in *GetUserFriendWorkMomentsReq, opts ...grpc.CallOption) (*GetUserFriendWorkMomentsResp, error) { - out := new(GetUserFriendWorkMomentsResp) - err := grpc.Invoke(ctx, "/office.OfficeService/GetUserFriendWorkMoments", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *officeServiceClient) SetUserWorkMomentsLevel(ctx context.Context, in *SetUserWorkMomentsLevelReq, opts ...grpc.CallOption) (*SetUserWorkMomentsLevelResp, error) { - out := new(SetUserWorkMomentsLevelResp) - err := grpc.Invoke(ctx, "/office.OfficeService/SetUserWorkMomentsLevel", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// Server API for OfficeService service - -type OfficeServiceServer interface { - GetUserTags(context.Context, *GetUserTagsReq) (*GetUserTagsResp, error) - CreateTag(context.Context, *CreateTagReq) (*CreateTagResp, error) - DeleteTag(context.Context, *DeleteTagReq) (*DeleteTagResp, error) - SetTag(context.Context, *SetTagReq) (*SetTagResp, error) - SendMsg2Tag(context.Context, *SendMsg2TagReq) (*SendMsg2TagResp, error) - GetTagSendLogs(context.Context, *GetTagSendLogsReq) (*GetTagSendLogsResp, error) - GetUserTagByID(context.Context, *GetUserTagByIDReq) (*GetUserTagByIDResp, error) - CreateOneWorkMoment(context.Context, *CreateOneWorkMomentReq) (*CreateOneWorkMomentResp, error) - DeleteOneWorkMoment(context.Context, *DeleteOneWorkMomentReq) (*DeleteOneWorkMomentResp, error) - LikeOneWorkMoment(context.Context, *LikeOneWorkMomentReq) (*LikeOneWorkMomentResp, error) - CommentOneWorkMoment(context.Context, *CommentOneWorkMomentReq) (*CommentOneWorkMomentResp, error) - GetWorkMomentByID(context.Context, *GetWorkMomentByIDReq) (*GetWorkMomentByIDResp, error) - ChangeWorkMomentPermission(context.Context, *ChangeWorkMomentPermissionReq) (*ChangeWorkMomentPermissionResp, error) - // / user self - GetUserWorkMoments(context.Context, *GetUserWorkMomentsReq) (*GetUserWorkMomentsResp, error) - // / users friend - GetUserFriendWorkMoments(context.Context, *GetUserFriendWorkMomentsReq) (*GetUserFriendWorkMomentsResp, error) - SetUserWorkMomentsLevel(context.Context, *SetUserWorkMomentsLevelReq) (*SetUserWorkMomentsLevelResp, error) -} - -func RegisterOfficeServiceServer(s *grpc.Server, srv OfficeServiceServer) { - s.RegisterService(&_OfficeService_serviceDesc, srv) -} - -func _OfficeService_GetUserTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserTagsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).GetUserTags(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/GetUserTags", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).GetUserTags(ctx, req.(*GetUserTagsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_CreateTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateTagReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).CreateTag(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/CreateTag", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).CreateTag(ctx, req.(*CreateTagReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_DeleteTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteTagReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).DeleteTag(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/DeleteTag", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).DeleteTag(ctx, req.(*DeleteTagReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_SetTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetTagReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).SetTag(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/SetTag", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).SetTag(ctx, req.(*SetTagReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_SendMsg2Tag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SendMsg2TagReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).SendMsg2Tag(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/SendMsg2Tag", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).SendMsg2Tag(ctx, req.(*SendMsg2TagReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_GetTagSendLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetTagSendLogsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).GetTagSendLogs(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/GetTagSendLogs", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).GetTagSendLogs(ctx, req.(*GetTagSendLogsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_GetUserTagByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserTagByIDReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).GetUserTagByID(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/GetUserTagByID", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).GetUserTagByID(ctx, req.(*GetUserTagByIDReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_CreateOneWorkMoment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateOneWorkMomentReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).CreateOneWorkMoment(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/CreateOneWorkMoment", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).CreateOneWorkMoment(ctx, req.(*CreateOneWorkMomentReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_DeleteOneWorkMoment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteOneWorkMomentReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).DeleteOneWorkMoment(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/DeleteOneWorkMoment", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).DeleteOneWorkMoment(ctx, req.(*DeleteOneWorkMomentReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_LikeOneWorkMoment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(LikeOneWorkMomentReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).LikeOneWorkMoment(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/LikeOneWorkMoment", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).LikeOneWorkMoment(ctx, req.(*LikeOneWorkMomentReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_CommentOneWorkMoment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CommentOneWorkMomentReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).CommentOneWorkMoment(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/CommentOneWorkMoment", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).CommentOneWorkMoment(ctx, req.(*CommentOneWorkMomentReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_GetWorkMomentByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetWorkMomentByIDReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).GetWorkMomentByID(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/GetWorkMomentByID", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).GetWorkMomentByID(ctx, req.(*GetWorkMomentByIDReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_ChangeWorkMomentPermission_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeWorkMomentPermissionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).ChangeWorkMomentPermission(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/ChangeWorkMomentPermission", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).ChangeWorkMomentPermission(ctx, req.(*ChangeWorkMomentPermissionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_GetUserWorkMoments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserWorkMomentsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).GetUserWorkMoments(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/GetUserWorkMoments", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).GetUserWorkMoments(ctx, req.(*GetUserWorkMomentsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_GetUserFriendWorkMoments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserFriendWorkMomentsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).GetUserFriendWorkMoments(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/GetUserFriendWorkMoments", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).GetUserFriendWorkMoments(ctx, req.(*GetUserFriendWorkMomentsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _OfficeService_SetUserWorkMomentsLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetUserWorkMomentsLevelReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OfficeServiceServer).SetUserWorkMomentsLevel(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/office.OfficeService/SetUserWorkMomentsLevel", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OfficeServiceServer).SetUserWorkMomentsLevel(ctx, req.(*SetUserWorkMomentsLevelReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _OfficeService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "office.OfficeService", - HandlerType: (*OfficeServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetUserTags", - Handler: _OfficeService_GetUserTags_Handler, - }, - { - MethodName: "CreateTag", - Handler: _OfficeService_CreateTag_Handler, - }, - { - MethodName: "DeleteTag", - Handler: _OfficeService_DeleteTag_Handler, - }, - { - MethodName: "SetTag", - Handler: _OfficeService_SetTag_Handler, - }, - { - MethodName: "SendMsg2Tag", - Handler: _OfficeService_SendMsg2Tag_Handler, - }, - { - MethodName: "GetTagSendLogs", - Handler: _OfficeService_GetTagSendLogs_Handler, - }, - { - MethodName: "GetUserTagByID", - Handler: _OfficeService_GetUserTagByID_Handler, - }, - { - MethodName: "CreateOneWorkMoment", - Handler: _OfficeService_CreateOneWorkMoment_Handler, - }, - { - MethodName: "DeleteOneWorkMoment", - Handler: _OfficeService_DeleteOneWorkMoment_Handler, - }, - { - MethodName: "LikeOneWorkMoment", - Handler: _OfficeService_LikeOneWorkMoment_Handler, - }, - { - MethodName: "CommentOneWorkMoment", - Handler: _OfficeService_CommentOneWorkMoment_Handler, - }, - { - MethodName: "GetWorkMomentByID", - Handler: _OfficeService_GetWorkMomentByID_Handler, - }, - { - MethodName: "ChangeWorkMomentPermission", - Handler: _OfficeService_ChangeWorkMomentPermission_Handler, - }, - { - MethodName: "GetUserWorkMoments", - Handler: _OfficeService_GetUserWorkMoments_Handler, - }, - { - MethodName: "GetUserFriendWorkMoments", - Handler: _OfficeService_GetUserFriendWorkMoments_Handler, - }, - { - MethodName: "SetUserWorkMomentsLevel", - Handler: _OfficeService_SetUserWorkMomentsLevel_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "office/office.proto", -} - -func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_02f43b66ea327245) } - -var fileDescriptor_office_02f43b66ea327245 = []byte{ - // 1604 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6e, 0x1c, 0xc5, - 0x13, 0xd7, 0xec, 0xa7, 0xb7, 0xd6, 0x89, 0xe3, 0xb6, 0x63, 0x6f, 0x26, 0xb1, 0xe3, 0xff, 0x24, - 0xf9, 0x2b, 0x7c, 0xc8, 0x46, 0x4b, 0x84, 0x10, 0x88, 0x08, 0xc5, 0x9b, 0x58, 0x0b, 0xde, 0xc4, - 0x8c, 0x6d, 0x22, 0x38, 0x60, 0x4d, 0xd6, 0xed, 0x61, 0xe4, 0xdd, 0x99, 0xc9, 0xf4, 0xd8, 0x26, - 0x27, 0xa4, 0x9c, 0xb9, 0x71, 0x80, 0x0b, 0x4f, 0xc1, 0x33, 0x70, 0xe0, 0x84, 0x38, 0xf0, 0x06, - 0xbc, 0x03, 0x57, 0xd4, 0x3d, 0x33, 0xfd, 0x31, 0x1f, 0xbb, 0x9b, 0x01, 0x24, 0x38, 0x79, 0xab, - 0xbb, 0xba, 0xba, 0xea, 0xd7, 0xd5, 0xbf, 0xae, 0x29, 0xc3, 0x92, 0x77, 0x72, 0xe2, 0x0c, 0xf1, - 0x56, 0xf4, 0x67, 0xd3, 0x0f, 0xbc, 0xd0, 0x43, 0x8d, 0x48, 0xd2, 0xff, 0xf7, 0xc4, 0xc7, 0xee, - 0x51, 0x7f, 0xb0, 0xe5, 0x9f, 0xda, 0x5b, 0x6c, 0x6a, 0x8b, 0x1c, 0x9f, 0x1e, 0x5d, 0x90, 0xad, - 0x0b, 0x12, 0xa9, 0x1a, 0xf7, 0x01, 0xb6, 0xbd, 0xf1, 0xd8, 0x73, 0x4d, 0x4c, 0x7c, 0xd4, 0x81, - 0x26, 0x0e, 0x82, 0x6d, 0xef, 0x18, 0x77, 0xb4, 0x0d, 0xed, 0x6e, 0xdd, 0x4c, 0x44, 0xb4, 0x02, - 0x0d, 0x1c, 0x04, 0x03, 0x62, 0x77, 0x2a, 0x1b, 0xda, 0xdd, 0x96, 0x19, 0x4b, 0xc6, 0x07, 0xd0, - 0x3c, 0xb0, 0xec, 0x43, 0x82, 0x03, 0xaa, 0x72, 0x46, 0x70, 0xd0, 0xef, 0xb1, 0xb5, 0x2d, 0x33, - 0x96, 0x90, 0x0e, 0x73, 0xf4, 0xd7, 0x63, 0x6b, 0x8c, 0xe3, 0xc5, 0x5c, 0x36, 0x9e, 0x41, 0xf5, - 0xc0, 0xb2, 0xd1, 0x32, 0xd4, 0x43, 0xcb, 0xe6, 0x2b, 0x23, 0x81, 0x7a, 0x13, 0x5a, 0xb6, 0xb4, - 0x2e, 0x11, 0xd1, 0x1b, 0x91, 0xc9, 0x5d, 0x87, 0x84, 0x9d, 0xea, 0x46, 0xf5, 0x6e, 0xbb, 0xbb, - 0xb0, 0x19, 0x23, 0x10, 0x7b, 0x63, 0x72, 0x05, 0xe3, 0x23, 0xb8, 0xbc, 0x83, 0x43, 0x3a, 0x78, - 0x60, 0xd9, 0xc4, 0xc4, 0xcf, 0x0b, 0x3d, 0xdd, 0x80, 0xb6, 0xe7, 0xe3, 0xc0, 0x0a, 0x1d, 0xcf, - 0xed, 0xf7, 0xe2, 0x4d, 0xe5, 0x21, 0xe3, 0x04, 0x16, 0x14, 0x5b, 0xc4, 0x47, 0x5d, 0x80, 0x21, - 0x47, 0x90, 0x19, 0x6c, 0x77, 0x51, 0xe2, 0x8d, 0xc0, 0xd6, 0x94, 0xb4, 0xd0, 0x4d, 0xa8, 0x85, - 0x96, 0x4d, 0x3a, 0x15, 0xe6, 0x7b, 0x5b, 0xf2, 0xdd, 0x64, 0x13, 0xc6, 0x4b, 0x0d, 0xe6, 0xb7, - 0x03, 0x6c, 0x85, 0x98, 0x8e, 0xe1, 0xe7, 0x32, 0x16, 0x9a, 0x8a, 0x85, 0x08, 0xa6, 0xa2, 0x04, - 0xb3, 0x0e, 0x10, 0xfd, 0xe2, 0x28, 0xb5, 0x4c, 0x69, 0x24, 0x1d, 0x6c, 0x2d, 0x1b, 0xec, 0x36, - 0x5c, 0x92, 0x7c, 0x28, 0x17, 0xaa, 0xf1, 0x05, 0xcc, 0xf7, 0xf0, 0x08, 0xf3, 0x40, 0x8a, 0xb0, - 0xe7, 0x29, 0x50, 0x91, 0x53, 0x20, 0xe5, 0x64, 0x35, 0xd7, 0x49, 0xc9, 0x7e, 0x49, 0x27, 0x7f, - 0xd5, 0xa0, 0xb5, 0x8f, 0xc3, 0x52, 0x2e, 0x76, 0xa0, 0xe9, 0xe2, 0x0b, 0x76, 0x32, 0x91, 0x7b, - 0x89, 0x88, 0x36, 0x01, 0x39, 0xee, 0x30, 0xc0, 0x16, 0xc1, 0x87, 0xe2, 0x24, 0x6a, 0xec, 0x24, - 0x72, 0x66, 0xd0, 0xeb, 0x70, 0x25, 0xc0, 0xc7, 0x67, 0x43, 0x59, 0xbb, 0xce, 0xb4, 0x33, 0xe3, - 0x69, 0x60, 0x1a, 0x59, 0x60, 0x3e, 0x04, 0x48, 0x42, 0x2a, 0x89, 0xca, 0xef, 0x1a, 0x5c, 0xde, - 0xc7, 0xee, 0xf1, 0x80, 0xd8, 0x5d, 0x25, 0x0d, 0x99, 0x67, 0x1a, 0xf3, 0x2c, 0x11, 0xe9, 0x2d, - 0x3f, 0x4c, 0xae, 0x64, 0x85, 0x4d, 0x71, 0x19, 0xdd, 0x80, 0xd6, 0x4e, 0xe0, 0x9d, 0xf9, 0x52, - 0x26, 0x8a, 0x01, 0x0a, 0x37, 0xc1, 0xee, 0x31, 0xcf, 0xc1, 0x58, 0xa2, 0x70, 0xd0, 0x5f, 0x38, - 0xd8, 0x1b, 0x59, 0xe1, 0x89, 0x17, 0x8c, 0xfb, 0xbd, 0x4e, 0x9d, 0xb1, 0x52, 0x66, 0x9c, 0xfa, - 0x35, 0xf4, 0xdc, 0x10, 0xbb, 0x61, 0x0c, 0x45, 0x22, 0xa6, 0x81, 0x6a, 0x66, 0x81, 0x7a, 0x08, - 0x0b, 0x4a, 0x94, 0x25, 0xd1, 0xfa, 0x56, 0x83, 0xc5, 0x1d, 0x06, 0x38, 0xb5, 0xb6, 0xeb, 0x45, - 0x54, 0xd3, 0x03, 0xd8, 0xb3, 0x6c, 0xc7, 0x65, 0x9b, 0xc5, 0x96, 0x6e, 0x6f, 0x12, 0x1c, 0x9c, - 0xe3, 0xe0, 0xc8, 0xf2, 0x9d, 0x23, 0xdf, 0x0a, 0xac, 0x31, 0xd9, 0x34, 0xf1, 0xf3, 0x33, 0x4c, - 0x42, 0xa1, 0x6b, 0x4a, 0xeb, 0x0a, 0xef, 0xf8, 0xf4, 0xeb, 0xe1, 0x01, 0x08, 0x8f, 0x14, 0xde, - 0xd4, 0xa6, 0xf0, 0xa6, 0x8c, 0x69, 0x45, 0xc5, 0x54, 0x87, 0x39, 0x7a, 0x02, 0x07, 0x4e, 0x9c, - 0xf3, 0x55, 0x93, 0xcb, 0xc6, 0x4f, 0x1a, 0xa0, 0x34, 0x0c, 0x25, 0x59, 0xf2, 0xa1, 0x82, 0x5d, - 0x85, 0xad, 0xb9, 0x93, 0x8b, 0x1d, 0xf1, 0x3d, 0x97, 0xe0, 0x02, 0xf0, 0xee, 0x41, 0x3b, 0x14, - 0xde, 0xc4, 0xef, 0x05, 0x92, 0xe2, 0x8e, 0xa7, 0x4c, 0x59, 0xcd, 0x18, 0xb2, 0xd3, 0x8c, 0x99, - 0xfe, 0xc1, 0x8b, 0x7e, 0xef, 0x9f, 0x20, 0x2f, 0x9b, 0x61, 0xa5, 0x6c, 0x52, 0x12, 0xab, 0x35, - 0xa8, 0x86, 0x96, 0x1d, 0x83, 0xa4, 0x3c, 0x28, 0x74, 0xdc, 0xb8, 0x0f, 0x73, 0xbb, 0xce, 0x29, - 0x2e, 0xfd, 0x4e, 0x3f, 0x82, 0x2b, 0x8f, 0xbd, 0xd0, 0x39, 0x71, 0x86, 0xcc, 0xf5, 0xd2, 0x76, - 0xfe, 0xd0, 0xa0, 0x49, 0x23, 0xa0, 0x59, 0x54, 0x62, 0x3d, 0xcd, 0xc9, 0x13, 0x6b, 0x88, 0x0f, - 0xcd, 0xdd, 0x84, 0x6c, 0x63, 0x91, 0x82, 0x1d, 0x60, 0x7f, 0xf4, 0x22, 0xe2, 0xc8, 0xe4, 0x39, - 0x93, 0x86, 0xd0, 0x6d, 0xb8, 0xc4, 0x45, 0x66, 0xbc, 0xce, 0x74, 0xd4, 0x41, 0xca, 0x55, 0x71, - 0x9a, 0x73, 0x5a, 0x15, 0x03, 0xf2, 0x9d, 0x68, 0xaa, 0x77, 0x62, 0x1d, 0x60, 0x18, 0x3d, 0x96, - 0xf4, 0x56, 0xcc, 0x31, 0x9e, 0x92, 0x46, 0x8c, 0x3e, 0x2c, 0xec, 0xe1, 0x60, 0xec, 0x10, 0xe2, - 0x78, 0x2e, 0x23, 0x3f, 0xba, 0x95, 0x4d, 0x7f, 0x48, 0xaf, 0xba, 0x18, 0xa0, 0x5b, 0x31, 0x81, - 0x67, 0x55, 0x22, 0x1a, 0x3d, 0xb8, 0xfc, 0xd4, 0x0b, 0x4e, 0x07, 0x1e, 0x85, 0xb1, 0xf4, 0x51, - 0x7c, 0x53, 0x03, 0x10, 0x66, 0x90, 0x01, 0xf3, 0x17, 0x5c, 0xe2, 0x86, 0x94, 0xb1, 0x42, 0x1a, - 0x92, 0xb7, 0xa9, 0x16, 0x9f, 0x58, 0x4d, 0x3d, 0x31, 0x09, 0xcb, 0xba, 0x8a, 0xe5, 0x7b, 0x30, - 0x3f, 0x8a, 0xb3, 0x95, 0x51, 0x55, 0x83, 0x5d, 0xd9, 0x95, 0x24, 0xab, 0xd5, 0xe0, 0x4d, 0x45, - 0x97, 0x52, 0xdc, 0x30, 0x4a, 0x30, 0xd2, 0x69, 0xaa, 0x14, 0x17, 0x27, 0x9e, 0xc9, 0x15, 0xe8, - 0xa1, 0xf9, 0xfc, 0x50, 0x92, 0x43, 0x13, 0x23, 0xe8, 0x11, 0x20, 0x21, 0x71, 0x77, 0x5a, 0x13, - 0xdd, 0xc9, 0x59, 0x81, 0xfa, 0xb0, 0xe4, 0xab, 0x87, 0xcf, 0x0c, 0x01, 0x33, 0xb4, 0x9a, 0x18, - 0x4a, 0xe5, 0x87, 0x99, 0xb7, 0x06, 0xbd, 0x03, 0x60, 0x85, 0xdc, 0x95, 0xf6, 0x44, 0x57, 0x24, - 0xcd, 0x54, 0x7e, 0xce, 0x67, 0xf2, 0xd3, 0x85, 0x95, 0xa8, 0xd8, 0x7b, 0xe2, 0x62, 0x61, 0x86, - 0x92, 0x5e, 0x17, 0x40, 0x64, 0x41, 0x9a, 0x8e, 0x24, 0x55, 0x49, 0x6b, 0x86, 0x4a, 0x7a, 0x00, - 0xab, 0xb9, 0xfb, 0x95, 0x7c, 0x7d, 0xcf, 0x61, 0x25, 0x2a, 0x03, 0x33, 0xee, 0xff, 0x95, 0xc4, - 0x9e, 0xce, 0xe0, 0x03, 0x58, 0xcd, 0xdd, 0xb7, 0x64, 0x18, 0x21, 0x2c, 0x53, 0x9e, 0xce, 0x04, - 0x51, 0x74, 0xc1, 0x0d, 0x98, 0x7f, 0x2a, 0x07, 0x17, 0xb9, 0xaf, 0x8c, 0xcd, 0x10, 0xc4, 0xc7, - 0x70, 0x35, 0x67, 0xd7, 0x92, 0x21, 0xfc, 0xa8, 0xc1, 0x6a, 0x7c, 0xd3, 0x5e, 0x25, 0x8c, 0x8b, - 0x9c, 0x30, 0x2e, 0x52, 0x61, 0xc8, 0x04, 0x5f, 0xcd, 0x12, 0xbc, 0x44, 0x28, 0xb5, 0x89, 0x45, - 0x60, 0x3d, 0x0b, 0xc1, 0x63, 0xe8, 0xe4, 0x3b, 0x5d, 0x12, 0x85, 0xaf, 0x60, 0x79, 0x07, 0x87, - 0xc2, 0x50, 0x52, 0x41, 0xcc, 0x92, 0x8d, 0x3a, 0xcc, 0x79, 0xfe, 0xa1, 0x9c, 0x8f, 0x5c, 0x9e, - 0xe1, 0x30, 0xbf, 0x86, 0xab, 0x39, 0x3b, 0x97, 0x2c, 0x2b, 0xd4, 0xbb, 0x5f, 0x99, 0xe5, 0xee, - 0x1b, 0xbf, 0x69, 0xb0, 0xb6, 0xfd, 0xa5, 0xe5, 0xda, 0x12, 0x8e, 0x82, 0xda, 0xfe, 0x0e, 0x10, - 0x54, 0xda, 0xae, 0x66, 0x68, 0xbb, 0x0b, 0xcb, 0x2a, 0x09, 0x2b, 0x9f, 0x5e, 0xb9, 0x73, 0x33, - 0xa4, 0xc8, 0x01, 0xac, 0x4f, 0x0a, 0xab, 0x64, 0xa2, 0x7c, 0xa7, 0xb1, 0xf3, 0xa2, 0x9e, 0x08, - 0xbb, 0x13, 0xbb, 0x14, 0xbd, 0x9c, 0xb2, 0xf8, 0xd5, 0x3f, 0x29, 0xa6, 0x27, 0xd2, 0xcf, 0x1a, - 0xac, 0xe4, 0x79, 0x56, 0x32, 0x95, 0xee, 0x41, 0x5b, 0x1c, 0x70, 0xd2, 0xfa, 0xc8, 0xcb, 0x25, - 0x59, 0x2d, 0xf5, 0x0d, 0x50, 0x2d, 0xf9, 0x0d, 0x60, 0xfc, 0xa0, 0xc1, 0xf5, 0x38, 0x96, 0x47, - 0x81, 0x83, 0xdd, 0xe3, 0x7f, 0x19, 0xd6, 0xbf, 0x68, 0x70, 0xa3, 0xd8, 0xbf, 0xff, 0x22, 0xe2, - 0xdf, 0x57, 0xe0, 0x9a, 0xd8, 0x42, 0xfe, 0x78, 0x18, 0x10, 0x1b, 0xbd, 0x05, 0x4b, 0xae, 0x3a, - 0x74, 0xf0, 0xc2, 0x4f, 0x9a, 0x8e, 0x79, 0x53, 0xe8, 0x35, 0x4a, 0xee, 0x63, 0x89, 0x86, 0x32, - 0x65, 0x5d, 0x32, 0x9f, 0xa1, 0x97, 0xea, 0xc4, 0x17, 0xbf, 0x56, 0x58, 0xca, 0xd6, 0x8b, 0x4b, - 0xd9, 0x86, 0x5a, 0xca, 0xbe, 0x09, 0x8b, 0xc2, 0xfa, 0xb6, 0xf2, 0x81, 0x90, 0x9d, 0x30, 0x46, - 0xa0, 0xef, 0x67, 0xee, 0xd5, 0x2e, 0x3e, 0xc7, 0xa3, 0x29, 0xdf, 0x98, 0x23, 0xaa, 0xc3, 0xc2, - 0xaf, 0x9b, 0x91, 0x30, 0x43, 0x6a, 0x7d, 0x02, 0xd7, 0x0b, 0x77, 0x2b, 0x97, 0x58, 0xdd, 0x97, - 0x00, 0x97, 0x9e, 0x30, 0x8d, 0x7d, 0x1c, 0x9c, 0x3b, 0x43, 0x8c, 0xee, 0x43, 0x5b, 0xea, 0x8b, - 0x22, 0x5e, 0x90, 0xaa, 0x8d, 0x57, 0x7d, 0x35, 0x77, 0x9c, 0xf8, 0xe8, 0x5d, 0x68, 0xf1, 0x56, - 0x23, 0x5a, 0xe6, 0xdb, 0x4b, 0x1d, 0x50, 0xfd, 0x6a, 0xce, 0x68, 0xb4, 0x92, 0xf7, 0xff, 0xc4, - 0x4a, 0xb9, 0xe5, 0x28, 0x56, 0xaa, 0x8d, 0xc2, 0x2d, 0x68, 0x44, 0x0d, 0x32, 0xb4, 0x98, 0x28, - 0xf0, 0x1e, 0xa0, 0x8e, 0xd2, 0x43, 0xc4, 0xa7, 0x41, 0x4a, 0x8d, 0x22, 0x11, 0xa4, 0xda, 0x23, - 0x13, 0x41, 0xa6, 0xbb, 0x4a, 0x3b, 0xac, 0x11, 0x2d, 0x75, 0x46, 0xd0, 0x35, 0x09, 0x0f, 0xb5, - 0x71, 0xa4, 0xeb, 0x45, 0x53, 0xdc, 0x90, 0xd4, 0x36, 0x50, 0x0c, 0xa9, 0x3d, 0x0b, 0xc5, 0x50, - 0xba, 0xd3, 0xf0, 0x29, 0x2c, 0xe5, 0x14, 0xe1, 0x68, 0x5d, 0x85, 0x3a, 0x5d, 0xc6, 0xe9, 0x37, - 0x27, 0xce, 0x47, 0x76, 0x73, 0xaa, 0x62, 0x61, 0x37, 0xbf, 0x54, 0x17, 0x76, 0x8b, 0x4a, 0xea, - 0x3d, 0x58, 0xcc, 0x14, 0xaa, 0xe8, 0x46, 0xb2, 0x2a, 0xaf, 0x72, 0xd6, 0xd7, 0x26, 0xcc, 0x12, - 0x1f, 0x7d, 0x06, 0xcb, 0x79, 0x75, 0x1f, 0xba, 0x99, 0x62, 0x97, 0x8c, 0xdd, 0x8d, 0xc9, 0x0a, - 0x91, 0xb3, 0x99, 0x42, 0x4c, 0x38, 0x9b, 0x57, 0x1d, 0x0a, 0x67, 0xf3, 0x2b, 0xb8, 0x53, 0xd0, - 0x8b, 0x2b, 0x10, 0x74, 0x87, 0x7b, 0x34, 0xa9, 0xf8, 0xd2, 0xff, 0x3f, 0x8b, 0x1a, 0xf1, 0xd1, - 0x3e, 0xef, 0x4d, 0x49, 0xbc, 0x81, 0xd6, 0x52, 0xd9, 0xa4, 0xbe, 0xa3, 0xfa, 0xfa, 0xa4, 0x69, - 0xe2, 0x23, 0x0c, 0x9d, 0xa2, 0x67, 0x0e, 0xdd, 0x4a, 0xad, 0xcd, 0x7b, 0xa8, 0xf5, 0xdb, 0xd3, - 0x95, 0x88, 0x8f, 0x9e, 0xc1, 0x6a, 0x01, 0xe7, 0x21, 0x43, 0xba, 0xd8, 0x05, 0x14, 0xac, 0xdf, - 0x9a, 0xaa, 0x43, 0xfc, 0x07, 0x8b, 0x9f, 0x2f, 0x6c, 0xc6, 0xff, 0x76, 0x7b, 0x3f, 0xfa, 0xf3, - 0xac, 0xc1, 0xfe, 0xa7, 0xf6, 0xf6, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x70, 0x91, 0x17, 0x98, - 0x95, 0x1b, 0x00, 0x00, -} diff --git a/pkg/proto/office/office.proto b/pkg/proto/office/office.proto index 63d04955a..04ead1788 100644 --- a/pkg/proto/office/office.proto +++ b/pkg/proto/office/office.proto @@ -220,8 +220,9 @@ message ChangeWorkMomentPermissionResp { message GetUserWorkMomentsReq { string userID = 1; - server_api_params.RequestPagination Pagination = 2; - string operationID = 3; + string opUserID = 2; + server_api_params.RequestPagination Pagination = 3; + string operationID = 4; } message GetUserWorkMomentsResp { @@ -244,12 +245,16 @@ message GetUserFriendWorkMomentsResp { message WorkMomentNotificationMsg { int32 notificationMsgType = 1; - Comment comment = 2; - string workMomentID = 3; - string userID = 4; - string userName = 5; - string faceURL = 6; - string workMomentContent = 7; + string replyUserName = 2; + string replyUserID = 3; + string content = 4; + string contentID = 5; + string workMomentID = 6; + string userID = 7; + string userName = 8; + string faceURL = 9; + string workMomentContent = 10; + int32 createTime = 11; } message SetUserWorkMomentsLevelReq { From 010f24e5c3cd091259ea59fbe59a4466003bce40 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 24 Apr 2022 17:46:47 +0800 Subject: [PATCH 30/57] work_moments --- pkg/common/db/mongoModel.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 14adb3057..6ff42d558 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -11,8 +11,6 @@ import ( "errors" "fmt" "github.com/gogo/protobuf/sortkeys" - "go.etcd.io/etcd/clientv3" - "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo/options" "math/rand" @@ -682,7 +680,7 @@ func (d *DataBases) GetUserWorkMoments(opUserID, userID string, showNumber, page result, err := c.Find(ctx, bson.D{ // 等价条件: select * from {"user_id", userID}, {"$or", bson.A{ - bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {opUserID, bson.D{{"$in", "permission_user_id_list"}}}}, + bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {opUserID, bson.D{{"$nin", "permission_user_id_list"}}}}, bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {opUserID, bson.D{{"$in", "permission_user_id_list"}}}}, bson.D{{"permission", constant.WorkMomentPublic}}, }}, @@ -702,7 +700,7 @@ func (d *DataBases) GetUserFriendWorkMoments(friendIDList []*string, showNumber, result, err := c.Find(ctx, bson.D{ // 等价条件: select * from t where user_id in friend_id_list and () or () or (); {"user_id", bson.D{{"$in", friendIDList}}}, {"$or", bson.A{ - bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {userID, bson.D{{"$in", "permission_user_id_list"}}}}, + bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {userID, bson.D{{"$nin", "permission_user_id_list"}}}}, bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {userID, bson.D{{"$in", "permission_user_id_list"}}}}, bson.D{{"permission", constant.WorkMomentPublic}}, }}, From 318eb2f47d3d96d01a4da71c8a1319a5a6a21147 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 24 Apr 2022 17:54:02 +0800 Subject: [PATCH 31/57] shell update --- config/config.yaml | 4 ++-- script/check_all.sh | 4 ++-- script/msg_gateway_start.sh | 2 +- script/start_rpc_service.sh | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 445357150..aab4e1737 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -113,8 +113,8 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 rpcport: #rpc服务端口 默认即可 openImUserPort: [ 10100 ] openImFriendPort: [ 10200 ] - openImOfflineMessagePort: [ 10300 ] - openImOnlineRelayPort: [ 10400 ] + openImMessagePort: [ 10300 ] + openImMessageGatewayPort: [ 10400 ] openImGroupPort: [ 10500 ] openImAuthPort: [ 10600 ] openImPushPort: [ 10700 ] diff --git a/script/check_all.sh b/script/check_all.sh index 0e828fd54..2ecd800b0 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -8,8 +8,8 @@ service_port_name=( openImApiPort openImUserPort openImFriendPort - openImOfflineMessagePort - openImOnlineRelayPort + openImMessagePort + openImMessageGatewayPort openImGroupPort openImAuthPort openImPushPort diff --git a/script/msg_gateway_start.sh b/script/msg_gateway_start.sh index 7c107f16a..d61edf692 100644 --- a/script/msg_gateway_start.sh +++ b/script/msg_gateway_start.sh @@ -5,7 +5,7 @@ source ./path_info.cfg source ./function.sh ulimit -n 200000 -list1=$(cat $config_path | grep openImOnlineRelayPort | awk -F '[:]' '{print $NF}') +list1=$(cat $config_path | grep openImMessageGatewayPort | awk -F '[:]' '{print $NF}') list2=$(cat $config_path | grep openImWsPort | awk -F '[:]' '{print $NF}') list_to_string $list1 rpc_ports=($ports_array) diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 2e249bbc1..6e60bcdcd 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -36,7 +36,7 @@ service_port_name=( openImAdminCmsPort openImMessageCmsPort openImStatisticsPort - openImOfflineMessagePort + openImMessagePort openImOfficePort openImOrganizationPort openImConversationPort From 1b968903e2df23e917472cd2eb306f3e2b113ea9 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 24 Apr 2022 18:00:04 +0800 Subject: [PATCH 32/57] work_moments --- internal/api/office/work_moments.go | 5 +++-- pkg/base_info/work_moments_struct.go | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/api/office/work_moments.go b/internal/api/office/work_moments.go index fcea9a1a0..267bc7e3b 100644 --- a/internal/api/office/work_moments.go +++ b/internal/api/office/work_moments.go @@ -223,7 +223,7 @@ func GetUserWorkMoments(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) - ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + ok, opUserID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -234,7 +234,8 @@ func GetUserWorkMoments(c *gin.Context) { PageNumber: req.PageNumber, ShowNumber: req.ShowNumber, } - reqPb.UserID = userID + reqPb.OpUserID = opUserID + reqPb.UserID = req.UserID etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName) client := pbOffice.NewOfficeServiceClient(etcdConn) respPb, err := client.GetUserWorkMoments(context.Background(), &reqPb) diff --git a/pkg/base_info/work_moments_struct.go b/pkg/base_info/work_moments_struct.go index 9ed09a832..d27493261 100644 --- a/pkg/base_info/work_moments_struct.go +++ b/pkg/base_info/work_moments_struct.go @@ -80,6 +80,7 @@ type GetWorkMomentByIDResp struct { type GetUserWorkMomentsReq struct { WorkMomentsUserCommonReq + UserID string `json:"userID"` } type GetUserWorkMomentsResp struct { From 03b35721a26de3bcea36a19e2807e8f3164befaa Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 24 Apr 2022 18:01:27 +0800 Subject: [PATCH 33/57] work_moments --- pkg/proto/office/office.pb.go | 3104 +++++++++++++++++++++++++++++++++ 1 file changed, 3104 insertions(+) create mode 100644 pkg/proto/office/office.pb.go diff --git a/pkg/proto/office/office.pb.go b/pkg/proto/office/office.pb.go new file mode 100644 index 000000000..3c5ff4bf5 --- /dev/null +++ b/pkg/proto/office/office.pb.go @@ -0,0 +1,3104 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: office/office.proto + +package office // import "./office" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import sdk_ws "Open_IM/pkg/proto/sdk_ws" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type CommonResp 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:"-"` +} + +func (m *CommonResp) Reset() { *m = CommonResp{} } +func (m *CommonResp) String() string { return proto.CompactTextString(m) } +func (*CommonResp) ProtoMessage() {} +func (*CommonResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{0} +} +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) +} +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) +} +func (dst *CommonResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonResp.Merge(dst, src) +} +func (m *CommonResp) XXX_Size() int { + return xxx_messageInfo_CommonResp.Size(m) +} +func (m *CommonResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommonResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *CommonResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +type TagUser struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TagUser) Reset() { *m = TagUser{} } +func (m *TagUser) String() string { return proto.CompactTextString(m) } +func (*TagUser) ProtoMessage() {} +func (*TagUser) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{1} +} +func (m *TagUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TagUser.Unmarshal(m, b) +} +func (m *TagUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TagUser.Marshal(b, m, deterministic) +} +func (dst *TagUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_TagUser.Merge(dst, src) +} +func (m *TagUser) XXX_Size() int { + return xxx_messageInfo_TagUser.Size(m) +} +func (m *TagUser) XXX_DiscardUnknown() { + xxx_messageInfo_TagUser.DiscardUnknown(m) +} + +var xxx_messageInfo_TagUser proto.InternalMessageInfo + +func (m *TagUser) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *TagUser) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +type Tag struct { + TagID string `protobuf:"bytes,1,opt,name=tagID" json:"tagID,omitempty"` + TagName string `protobuf:"bytes,2,opt,name=tagName" json:"tagName,omitempty"` + UserList []*TagUser `protobuf:"bytes,3,rep,name=userList" json:"userList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tag) Reset() { *m = Tag{} } +func (m *Tag) String() string { return proto.CompactTextString(m) } +func (*Tag) ProtoMessage() {} +func (*Tag) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{2} +} +func (m *Tag) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Tag.Unmarshal(m, b) +} +func (m *Tag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Tag.Marshal(b, m, deterministic) +} +func (dst *Tag) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tag.Merge(dst, src) +} +func (m *Tag) XXX_Size() int { + return xxx_messageInfo_Tag.Size(m) +} +func (m *Tag) XXX_DiscardUnknown() { + xxx_messageInfo_Tag.DiscardUnknown(m) +} + +var xxx_messageInfo_Tag proto.InternalMessageInfo + +func (m *Tag) GetTagID() string { + if m != nil { + return m.TagID + } + return "" +} + +func (m *Tag) GetTagName() string { + if m != nil { + return m.TagName + } + return "" +} + +func (m *Tag) GetUserList() []*TagUser { + if m != nil { + return m.UserList + } + return nil +} + +type GetUserTagsReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserTagsReq) Reset() { *m = GetUserTagsReq{} } +func (m *GetUserTagsReq) String() string { return proto.CompactTextString(m) } +func (*GetUserTagsReq) ProtoMessage() {} +func (*GetUserTagsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{3} +} +func (m *GetUserTagsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserTagsReq.Unmarshal(m, b) +} +func (m *GetUserTagsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserTagsReq.Marshal(b, m, deterministic) +} +func (dst *GetUserTagsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserTagsReq.Merge(dst, src) +} +func (m *GetUserTagsReq) XXX_Size() int { + return xxx_messageInfo_GetUserTagsReq.Size(m) +} +func (m *GetUserTagsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserTagsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserTagsReq proto.InternalMessageInfo + +func (m *GetUserTagsReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUserTagsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUserTagsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Tags []*Tag `protobuf:"bytes,2,rep,name=tags" json:"tags,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserTagsResp) Reset() { *m = GetUserTagsResp{} } +func (m *GetUserTagsResp) String() string { return proto.CompactTextString(m) } +func (*GetUserTagsResp) ProtoMessage() {} +func (*GetUserTagsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{4} +} +func (m *GetUserTagsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserTagsResp.Unmarshal(m, b) +} +func (m *GetUserTagsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserTagsResp.Marshal(b, m, deterministic) +} +func (dst *GetUserTagsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserTagsResp.Merge(dst, src) +} +func (m *GetUserTagsResp) XXX_Size() int { + return xxx_messageInfo_GetUserTagsResp.Size(m) +} +func (m *GetUserTagsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserTagsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserTagsResp proto.InternalMessageInfo + +func (m *GetUserTagsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserTagsResp) GetTags() []*Tag { + if m != nil { + return m.Tags + } + return nil +} + +type CreateTagReq struct { + TagName string `protobuf:"bytes,1,opt,name=tagName" json:"tagName,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + UserIDList []string `protobuf:"bytes,3,rep,name=userIDList" json:"userIDList,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateTagReq) Reset() { *m = CreateTagReq{} } +func (m *CreateTagReq) String() string { return proto.CompactTextString(m) } +func (*CreateTagReq) ProtoMessage() {} +func (*CreateTagReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{5} +} +func (m *CreateTagReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateTagReq.Unmarshal(m, b) +} +func (m *CreateTagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateTagReq.Marshal(b, m, deterministic) +} +func (dst *CreateTagReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateTagReq.Merge(dst, src) +} +func (m *CreateTagReq) XXX_Size() int { + return xxx_messageInfo_CreateTagReq.Size(m) +} +func (m *CreateTagReq) XXX_DiscardUnknown() { + xxx_messageInfo_CreateTagReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateTagReq proto.InternalMessageInfo + +func (m *CreateTagReq) GetTagName() string { + if m != nil { + return m.TagName + } + return "" +} + +func (m *CreateTagReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *CreateTagReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList + } + return nil +} + +func (m *CreateTagReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type CreateTagResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateTagResp) Reset() { *m = CreateTagResp{} } +func (m *CreateTagResp) String() string { return proto.CompactTextString(m) } +func (*CreateTagResp) ProtoMessage() {} +func (*CreateTagResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{6} +} +func (m *CreateTagResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateTagResp.Unmarshal(m, b) +} +func (m *CreateTagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateTagResp.Marshal(b, m, deterministic) +} +func (dst *CreateTagResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateTagResp.Merge(dst, src) +} +func (m *CreateTagResp) XXX_Size() int { + return xxx_messageInfo_CreateTagResp.Size(m) +} +func (m *CreateTagResp) XXX_DiscardUnknown() { + xxx_messageInfo_CreateTagResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateTagResp proto.InternalMessageInfo + +func (m *CreateTagResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type DeleteTagReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + TagID string `protobuf:"bytes,2,opt,name=tagID" json:"tagID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteTagReq) Reset() { *m = DeleteTagReq{} } +func (m *DeleteTagReq) String() string { return proto.CompactTextString(m) } +func (*DeleteTagReq) ProtoMessage() {} +func (*DeleteTagReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{7} +} +func (m *DeleteTagReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteTagReq.Unmarshal(m, b) +} +func (m *DeleteTagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteTagReq.Marshal(b, m, deterministic) +} +func (dst *DeleteTagReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteTagReq.Merge(dst, src) +} +func (m *DeleteTagReq) XXX_Size() int { + return xxx_messageInfo_DeleteTagReq.Size(m) +} +func (m *DeleteTagReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteTagReq.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteTagReq proto.InternalMessageInfo + +func (m *DeleteTagReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *DeleteTagReq) GetTagID() string { + if m != nil { + return m.TagID + } + return "" +} + +func (m *DeleteTagReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type DeleteTagResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteTagResp) Reset() { *m = DeleteTagResp{} } +func (m *DeleteTagResp) String() string { return proto.CompactTextString(m) } +func (*DeleteTagResp) ProtoMessage() {} +func (*DeleteTagResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{8} +} +func (m *DeleteTagResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteTagResp.Unmarshal(m, b) +} +func (m *DeleteTagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteTagResp.Marshal(b, m, deterministic) +} +func (dst *DeleteTagResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteTagResp.Merge(dst, src) +} +func (m *DeleteTagResp) XXX_Size() int { + return xxx_messageInfo_DeleteTagResp.Size(m) +} +func (m *DeleteTagResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteTagResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteTagResp proto.InternalMessageInfo + +func (m *DeleteTagResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SetTagReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + TagID string `protobuf:"bytes,2,opt,name=tagID" json:"tagID,omitempty"` + NewName string `protobuf:"bytes,3,opt,name=newName" json:"newName,omitempty"` + IncreaseUserIDList []string `protobuf:"bytes,4,rep,name=increaseUserIDList" json:"increaseUserIDList,omitempty"` + ReduceUserIDList []string `protobuf:"bytes,5,rep,name=reduceUserIDList" json:"reduceUserIDList,omitempty"` + OperationID string `protobuf:"bytes,6,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetTagReq) Reset() { *m = SetTagReq{} } +func (m *SetTagReq) String() string { return proto.CompactTextString(m) } +func (*SetTagReq) ProtoMessage() {} +func (*SetTagReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{9} +} +func (m *SetTagReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetTagReq.Unmarshal(m, b) +} +func (m *SetTagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetTagReq.Marshal(b, m, deterministic) +} +func (dst *SetTagReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetTagReq.Merge(dst, src) +} +func (m *SetTagReq) XXX_Size() int { + return xxx_messageInfo_SetTagReq.Size(m) +} +func (m *SetTagReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetTagReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetTagReq proto.InternalMessageInfo + +func (m *SetTagReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *SetTagReq) GetTagID() string { + if m != nil { + return m.TagID + } + return "" +} + +func (m *SetTagReq) GetNewName() string { + if m != nil { + return m.NewName + } + return "" +} + +func (m *SetTagReq) GetIncreaseUserIDList() []string { + if m != nil { + return m.IncreaseUserIDList + } + return nil +} + +func (m *SetTagReq) GetReduceUserIDList() []string { + if m != nil { + return m.ReduceUserIDList + } + return nil +} + +func (m *SetTagReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SetTagResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetTagResp) Reset() { *m = SetTagResp{} } +func (m *SetTagResp) String() string { return proto.CompactTextString(m) } +func (*SetTagResp) ProtoMessage() {} +func (*SetTagResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{10} +} +func (m *SetTagResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetTagResp.Unmarshal(m, b) +} +func (m *SetTagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetTagResp.Marshal(b, m, deterministic) +} +func (dst *SetTagResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetTagResp.Merge(dst, src) +} +func (m *SetTagResp) XXX_Size() int { + return xxx_messageInfo_SetTagResp.Size(m) +} +func (m *SetTagResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetTagResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetTagResp proto.InternalMessageInfo + +func (m *SetTagResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SendMsg2TagReq struct { + TagList []string `protobuf:"bytes,1,rep,name=tagList" json:"tagList,omitempty"` + UserList []string `protobuf:"bytes,2,rep,name=UserList" json:"UserList,omitempty"` + GroupList []string `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"` + SendID string `protobuf:"bytes,4,opt,name=sendID" json:"sendID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,5,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` + Content string `protobuf:"bytes,6,opt,name=content" json:"content,omitempty"` + OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SendMsg2TagReq) Reset() { *m = SendMsg2TagReq{} } +func (m *SendMsg2TagReq) String() string { return proto.CompactTextString(m) } +func (*SendMsg2TagReq) ProtoMessage() {} +func (*SendMsg2TagReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{11} +} +func (m *SendMsg2TagReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendMsg2TagReq.Unmarshal(m, b) +} +func (m *SendMsg2TagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendMsg2TagReq.Marshal(b, m, deterministic) +} +func (dst *SendMsg2TagReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendMsg2TagReq.Merge(dst, src) +} +func (m *SendMsg2TagReq) XXX_Size() int { + return xxx_messageInfo_SendMsg2TagReq.Size(m) +} +func (m *SendMsg2TagReq) XXX_DiscardUnknown() { + xxx_messageInfo_SendMsg2TagReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SendMsg2TagReq proto.InternalMessageInfo + +func (m *SendMsg2TagReq) GetTagList() []string { + if m != nil { + return m.TagList + } + return nil +} + +func (m *SendMsg2TagReq) GetUserList() []string { + if m != nil { + return m.UserList + } + return nil +} + +func (m *SendMsg2TagReq) GetGroupList() []string { + if m != nil { + return m.GroupList + } + return nil +} + +func (m *SendMsg2TagReq) GetSendID() string { + if m != nil { + return m.SendID + } + return "" +} + +func (m *SendMsg2TagReq) GetSenderPlatformID() int32 { + if m != nil { + return m.SenderPlatformID + } + return 0 +} + +func (m *SendMsg2TagReq) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *SendMsg2TagReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SendMsg2TagResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SendMsg2TagResp) Reset() { *m = SendMsg2TagResp{} } +func (m *SendMsg2TagResp) String() string { return proto.CompactTextString(m) } +func (*SendMsg2TagResp) ProtoMessage() {} +func (*SendMsg2TagResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{12} +} +func (m *SendMsg2TagResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendMsg2TagResp.Unmarshal(m, b) +} +func (m *SendMsg2TagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendMsg2TagResp.Marshal(b, m, deterministic) +} +func (dst *SendMsg2TagResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendMsg2TagResp.Merge(dst, src) +} +func (m *SendMsg2TagResp) XXX_Size() int { + return xxx_messageInfo_SendMsg2TagResp.Size(m) +} +func (m *SendMsg2TagResp) XXX_DiscardUnknown() { + xxx_messageInfo_SendMsg2TagResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SendMsg2TagResp proto.InternalMessageInfo + +func (m *SendMsg2TagResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetTagSendLogsReq struct { + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination" json:"Pagination,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetTagSendLogsReq) Reset() { *m = GetTagSendLogsReq{} } +func (m *GetTagSendLogsReq) String() string { return proto.CompactTextString(m) } +func (*GetTagSendLogsReq) ProtoMessage() {} +func (*GetTagSendLogsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{13} +} +func (m *GetTagSendLogsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetTagSendLogsReq.Unmarshal(m, b) +} +func (m *GetTagSendLogsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetTagSendLogsReq.Marshal(b, m, deterministic) +} +func (dst *GetTagSendLogsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetTagSendLogsReq.Merge(dst, src) +} +func (m *GetTagSendLogsReq) XXX_Size() int { + return xxx_messageInfo_GetTagSendLogsReq.Size(m) +} +func (m *GetTagSendLogsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetTagSendLogsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetTagSendLogsReq proto.InternalMessageInfo + +func (m *GetTagSendLogsReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetTagSendLogsReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetTagSendLogsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type TagSendLog struct { + UserList []*TagUser `protobuf:"bytes,1,rep,name=userList" json:"userList,omitempty"` + Content string `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"` + SendTime int64 `protobuf:"varint,3,opt,name=sendTime" json:"sendTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TagSendLog) Reset() { *m = TagSendLog{} } +func (m *TagSendLog) String() string { return proto.CompactTextString(m) } +func (*TagSendLog) ProtoMessage() {} +func (*TagSendLog) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{14} +} +func (m *TagSendLog) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TagSendLog.Unmarshal(m, b) +} +func (m *TagSendLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TagSendLog.Marshal(b, m, deterministic) +} +func (dst *TagSendLog) XXX_Merge(src proto.Message) { + xxx_messageInfo_TagSendLog.Merge(dst, src) +} +func (m *TagSendLog) XXX_Size() int { + return xxx_messageInfo_TagSendLog.Size(m) +} +func (m *TagSendLog) XXX_DiscardUnknown() { + xxx_messageInfo_TagSendLog.DiscardUnknown(m) +} + +var xxx_messageInfo_TagSendLog proto.InternalMessageInfo + +func (m *TagSendLog) GetUserList() []*TagUser { + if m != nil { + return m.UserList + } + return nil +} + +func (m *TagSendLog) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *TagSendLog) GetSendTime() int64 { + if m != nil { + return m.SendTime + } + return 0 +} + +type GetTagSendLogsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + TagSendLogs []*TagSendLog `protobuf:"bytes,3,rep,name=tagSendLogs" json:"tagSendLogs,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetTagSendLogsResp) Reset() { *m = GetTagSendLogsResp{} } +func (m *GetTagSendLogsResp) String() string { return proto.CompactTextString(m) } +func (*GetTagSendLogsResp) ProtoMessage() {} +func (*GetTagSendLogsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{15} +} +func (m *GetTagSendLogsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetTagSendLogsResp.Unmarshal(m, b) +} +func (m *GetTagSendLogsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetTagSendLogsResp.Marshal(b, m, deterministic) +} +func (dst *GetTagSendLogsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetTagSendLogsResp.Merge(dst, src) +} +func (m *GetTagSendLogsResp) XXX_Size() int { + return xxx_messageInfo_GetTagSendLogsResp.Size(m) +} +func (m *GetTagSendLogsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetTagSendLogsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetTagSendLogsResp proto.InternalMessageInfo + +func (m *GetTagSendLogsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetTagSendLogsResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetTagSendLogsResp) GetTagSendLogs() []*TagSendLog { + if m != nil { + return m.TagSendLogs + } + return nil +} + +type GetUserTagByIDReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + TagID string `protobuf:"bytes,2,opt,name=tagID" json:"tagID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserTagByIDReq) Reset() { *m = GetUserTagByIDReq{} } +func (m *GetUserTagByIDReq) String() string { return proto.CompactTextString(m) } +func (*GetUserTagByIDReq) ProtoMessage() {} +func (*GetUserTagByIDReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{16} +} +func (m *GetUserTagByIDReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserTagByIDReq.Unmarshal(m, b) +} +func (m *GetUserTagByIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserTagByIDReq.Marshal(b, m, deterministic) +} +func (dst *GetUserTagByIDReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserTagByIDReq.Merge(dst, src) +} +func (m *GetUserTagByIDReq) XXX_Size() int { + return xxx_messageInfo_GetUserTagByIDReq.Size(m) +} +func (m *GetUserTagByIDReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserTagByIDReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserTagByIDReq proto.InternalMessageInfo + +func (m *GetUserTagByIDReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUserTagByIDReq) GetTagID() string { + if m != nil { + return m.TagID + } + return "" +} + +func (m *GetUserTagByIDReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUserTagByIDResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Tag *Tag `protobuf:"bytes,2,opt,name=tag" json:"tag,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserTagByIDResp) Reset() { *m = GetUserTagByIDResp{} } +func (m *GetUserTagByIDResp) String() string { return proto.CompactTextString(m) } +func (*GetUserTagByIDResp) ProtoMessage() {} +func (*GetUserTagByIDResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{17} +} +func (m *GetUserTagByIDResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserTagByIDResp.Unmarshal(m, b) +} +func (m *GetUserTagByIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserTagByIDResp.Marshal(b, m, deterministic) +} +func (dst *GetUserTagByIDResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserTagByIDResp.Merge(dst, src) +} +func (m *GetUserTagByIDResp) XXX_Size() int { + return xxx_messageInfo_GetUserTagByIDResp.Size(m) +} +func (m *GetUserTagByIDResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserTagByIDResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserTagByIDResp proto.InternalMessageInfo + +func (m *GetUserTagByIDResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserTagByIDResp) GetTag() *Tag { + if m != nil { + return m.Tag + } + return nil +} + +type LikeUser struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LikeUser) Reset() { *m = LikeUser{} } +func (m *LikeUser) String() string { return proto.CompactTextString(m) } +func (*LikeUser) ProtoMessage() {} +func (*LikeUser) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{18} +} +func (m *LikeUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LikeUser.Unmarshal(m, b) +} +func (m *LikeUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LikeUser.Marshal(b, m, deterministic) +} +func (dst *LikeUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_LikeUser.Merge(dst, src) +} +func (m *LikeUser) XXX_Size() int { + return xxx_messageInfo_LikeUser.Size(m) +} +func (m *LikeUser) XXX_DiscardUnknown() { + xxx_messageInfo_LikeUser.DiscardUnknown(m) +} + +var xxx_messageInfo_LikeUser proto.InternalMessageInfo + +func (m *LikeUser) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *LikeUser) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +type NotificationUser struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NotificationUser) Reset() { *m = NotificationUser{} } +func (m *NotificationUser) String() string { return proto.CompactTextString(m) } +func (*NotificationUser) ProtoMessage() {} +func (*NotificationUser) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{19} +} +func (m *NotificationUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NotificationUser.Unmarshal(m, b) +} +func (m *NotificationUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NotificationUser.Marshal(b, m, deterministic) +} +func (dst *NotificationUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotificationUser.Merge(dst, src) +} +func (m *NotificationUser) XXX_Size() int { + return xxx_messageInfo_NotificationUser.Size(m) +} +func (m *NotificationUser) XXX_DiscardUnknown() { + xxx_messageInfo_NotificationUser.DiscardUnknown(m) +} + +var xxx_messageInfo_NotificationUser proto.InternalMessageInfo + +func (m *NotificationUser) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *NotificationUser) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +type Comment struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` + ReplyUserID string `protobuf:"bytes,4,opt,name=replyUserID" json:"replyUserID,omitempty"` + ReplyUserName string `protobuf:"bytes,5,opt,name=replyUserName" json:"replyUserName,omitempty"` + ContentID string `protobuf:"bytes,6,opt,name=contentID" json:"contentID,omitempty"` + Content string `protobuf:"bytes,7,opt,name=content" json:"content,omitempty"` + CreateTime int32 `protobuf:"varint,8,opt,name=createTime" json:"createTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Comment) Reset() { *m = Comment{} } +func (m *Comment) String() string { return proto.CompactTextString(m) } +func (*Comment) ProtoMessage() {} +func (*Comment) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{20} +} +func (m *Comment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Comment.Unmarshal(m, b) +} +func (m *Comment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Comment.Marshal(b, m, deterministic) +} +func (dst *Comment) XXX_Merge(src proto.Message) { + xxx_messageInfo_Comment.Merge(dst, src) +} +func (m *Comment) XXX_Size() int { + return xxx_messageInfo_Comment.Size(m) +} +func (m *Comment) XXX_DiscardUnknown() { + xxx_messageInfo_Comment.DiscardUnknown(m) +} + +var xxx_messageInfo_Comment proto.InternalMessageInfo + +func (m *Comment) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *Comment) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +func (m *Comment) GetFaceURL() string { + if m != nil { + return m.FaceURL + } + return "" +} + +func (m *Comment) GetReplyUserID() string { + if m != nil { + return m.ReplyUserID + } + return "" +} + +func (m *Comment) GetReplyUserName() string { + if m != nil { + return m.ReplyUserName + } + return "" +} + +func (m *Comment) GetContentID() string { + if m != nil { + return m.ContentID + } + return "" +} + +func (m *Comment) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *Comment) GetCreateTime() int32 { + if m != nil { + return m.CreateTime + } + return 0 +} + +type PermissionGroup struct { + GroupName string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"` + GroupID string `protobuf:"bytes,2,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PermissionGroup) Reset() { *m = PermissionGroup{} } +func (m *PermissionGroup) String() string { return proto.CompactTextString(m) } +func (*PermissionGroup) ProtoMessage() {} +func (*PermissionGroup) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{21} +} +func (m *PermissionGroup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PermissionGroup.Unmarshal(m, b) +} +func (m *PermissionGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PermissionGroup.Marshal(b, m, deterministic) +} +func (dst *PermissionGroup) XXX_Merge(src proto.Message) { + xxx_messageInfo_PermissionGroup.Merge(dst, src) +} +func (m *PermissionGroup) XXX_Size() int { + return xxx_messageInfo_PermissionGroup.Size(m) +} +func (m *PermissionGroup) XXX_DiscardUnknown() { + xxx_messageInfo_PermissionGroup.DiscardUnknown(m) +} + +var xxx_messageInfo_PermissionGroup proto.InternalMessageInfo + +func (m *PermissionGroup) GetGroupName() string { + if m != nil { + return m.GroupName + } + return "" +} + +func (m *PermissionGroup) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type WorkMomentUser struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WorkMomentUser) Reset() { *m = WorkMomentUser{} } +func (m *WorkMomentUser) String() string { return proto.CompactTextString(m) } +func (*WorkMomentUser) ProtoMessage() {} +func (*WorkMomentUser) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{22} +} +func (m *WorkMomentUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WorkMomentUser.Unmarshal(m, b) +} +func (m *WorkMomentUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WorkMomentUser.Marshal(b, m, deterministic) +} +func (dst *WorkMomentUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_WorkMomentUser.Merge(dst, src) +} +func (m *WorkMomentUser) XXX_Size() int { + return xxx_messageInfo_WorkMomentUser.Size(m) +} +func (m *WorkMomentUser) XXX_DiscardUnknown() { + xxx_messageInfo_WorkMomentUser.DiscardUnknown(m) +} + +var xxx_messageInfo_WorkMomentUser proto.InternalMessageInfo + +func (m *WorkMomentUser) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *WorkMomentUser) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +type WorkMoment struct { + WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=userName" json:"userName,omitempty"` + FaceURL string `protobuf:"bytes,4,opt,name=faceURL" json:"faceURL,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content" json:"content,omitempty"` + LikeUserList []*WorkMomentUser `protobuf:"bytes,6,rep,name=likeUserList" json:"likeUserList,omitempty"` + Comments []*Comment `protobuf:"bytes,7,rep,name=comments" json:"comments,omitempty"` + Permission int32 `protobuf:"varint,8,opt,name=permission" json:"permission,omitempty"` + PermissionUserList []*WorkMomentUser `protobuf:"bytes,9,rep,name=permissionUserList" json:"permissionUserList,omitempty"` + PermissionGroupList []*PermissionGroup `protobuf:"bytes,10,rep,name=permissionGroupList" json:"permissionGroupList,omitempty"` + AtUserList []*WorkMomentUser `protobuf:"bytes,11,rep,name=atUserList" json:"atUserList,omitempty"` + CreateTime int32 `protobuf:"varint,12,opt,name=createTime" json:"createTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WorkMoment) Reset() { *m = WorkMoment{} } +func (m *WorkMoment) String() string { return proto.CompactTextString(m) } +func (*WorkMoment) ProtoMessage() {} +func (*WorkMoment) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{23} +} +func (m *WorkMoment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WorkMoment.Unmarshal(m, b) +} +func (m *WorkMoment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WorkMoment.Marshal(b, m, deterministic) +} +func (dst *WorkMoment) XXX_Merge(src proto.Message) { + xxx_messageInfo_WorkMoment.Merge(dst, src) +} +func (m *WorkMoment) XXX_Size() int { + return xxx_messageInfo_WorkMoment.Size(m) +} +func (m *WorkMoment) XXX_DiscardUnknown() { + xxx_messageInfo_WorkMoment.DiscardUnknown(m) +} + +var xxx_messageInfo_WorkMoment proto.InternalMessageInfo + +func (m *WorkMoment) GetWorkMomentID() string { + if m != nil { + return m.WorkMomentID + } + return "" +} + +func (m *WorkMoment) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *WorkMoment) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +func (m *WorkMoment) GetFaceURL() string { + if m != nil { + return m.FaceURL + } + return "" +} + +func (m *WorkMoment) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *WorkMoment) GetLikeUserList() []*WorkMomentUser { + if m != nil { + return m.LikeUserList + } + return nil +} + +func (m *WorkMoment) GetComments() []*Comment { + if m != nil { + return m.Comments + } + return nil +} + +func (m *WorkMoment) GetPermission() int32 { + if m != nil { + return m.Permission + } + return 0 +} + +func (m *WorkMoment) GetPermissionUserList() []*WorkMomentUser { + if m != nil { + return m.PermissionUserList + } + return nil +} + +func (m *WorkMoment) GetPermissionGroupList() []*PermissionGroup { + if m != nil { + return m.PermissionGroupList + } + return nil +} + +func (m *WorkMoment) GetAtUserList() []*WorkMomentUser { + if m != nil { + return m.AtUserList + } + return nil +} + +func (m *WorkMoment) GetCreateTime() int32 { + if m != nil { + return m.CreateTime + } + return 0 +} + +type CreateOneWorkMomentReq struct { + WorkMoment *WorkMoment `protobuf:"bytes,1,opt,name=workMoment" json:"workMoment,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateOneWorkMomentReq) Reset() { *m = CreateOneWorkMomentReq{} } +func (m *CreateOneWorkMomentReq) String() string { return proto.CompactTextString(m) } +func (*CreateOneWorkMomentReq) ProtoMessage() {} +func (*CreateOneWorkMomentReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{24} +} +func (m *CreateOneWorkMomentReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateOneWorkMomentReq.Unmarshal(m, b) +} +func (m *CreateOneWorkMomentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateOneWorkMomentReq.Marshal(b, m, deterministic) +} +func (dst *CreateOneWorkMomentReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateOneWorkMomentReq.Merge(dst, src) +} +func (m *CreateOneWorkMomentReq) XXX_Size() int { + return xxx_messageInfo_CreateOneWorkMomentReq.Size(m) +} +func (m *CreateOneWorkMomentReq) XXX_DiscardUnknown() { + xxx_messageInfo_CreateOneWorkMomentReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateOneWorkMomentReq proto.InternalMessageInfo + +func (m *CreateOneWorkMomentReq) GetWorkMoment() *WorkMoment { + if m != nil { + return m.WorkMoment + } + return nil +} + +func (m *CreateOneWorkMomentReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type CreateOneWorkMomentResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateOneWorkMomentResp) Reset() { *m = CreateOneWorkMomentResp{} } +func (m *CreateOneWorkMomentResp) String() string { return proto.CompactTextString(m) } +func (*CreateOneWorkMomentResp) ProtoMessage() {} +func (*CreateOneWorkMomentResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{25} +} +func (m *CreateOneWorkMomentResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateOneWorkMomentResp.Unmarshal(m, b) +} +func (m *CreateOneWorkMomentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateOneWorkMomentResp.Marshal(b, m, deterministic) +} +func (dst *CreateOneWorkMomentResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateOneWorkMomentResp.Merge(dst, src) +} +func (m *CreateOneWorkMomentResp) XXX_Size() int { + return xxx_messageInfo_CreateOneWorkMomentResp.Size(m) +} +func (m *CreateOneWorkMomentResp) XXX_DiscardUnknown() { + xxx_messageInfo_CreateOneWorkMomentResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateOneWorkMomentResp proto.InternalMessageInfo + +func (m *CreateOneWorkMomentResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type DeleteOneWorkMomentReq struct { + WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteOneWorkMomentReq) Reset() { *m = DeleteOneWorkMomentReq{} } +func (m *DeleteOneWorkMomentReq) String() string { return proto.CompactTextString(m) } +func (*DeleteOneWorkMomentReq) ProtoMessage() {} +func (*DeleteOneWorkMomentReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{26} +} +func (m *DeleteOneWorkMomentReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteOneWorkMomentReq.Unmarshal(m, b) +} +func (m *DeleteOneWorkMomentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteOneWorkMomentReq.Marshal(b, m, deterministic) +} +func (dst *DeleteOneWorkMomentReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteOneWorkMomentReq.Merge(dst, src) +} +func (m *DeleteOneWorkMomentReq) XXX_Size() int { + return xxx_messageInfo_DeleteOneWorkMomentReq.Size(m) +} +func (m *DeleteOneWorkMomentReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteOneWorkMomentReq.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteOneWorkMomentReq proto.InternalMessageInfo + +func (m *DeleteOneWorkMomentReq) GetWorkMomentID() string { + if m != nil { + return m.WorkMomentID + } + return "" +} + +func (m *DeleteOneWorkMomentReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *DeleteOneWorkMomentReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type DeleteOneWorkMomentResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteOneWorkMomentResp) Reset() { *m = DeleteOneWorkMomentResp{} } +func (m *DeleteOneWorkMomentResp) String() string { return proto.CompactTextString(m) } +func (*DeleteOneWorkMomentResp) ProtoMessage() {} +func (*DeleteOneWorkMomentResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{27} +} +func (m *DeleteOneWorkMomentResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteOneWorkMomentResp.Unmarshal(m, b) +} +func (m *DeleteOneWorkMomentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteOneWorkMomentResp.Marshal(b, m, deterministic) +} +func (dst *DeleteOneWorkMomentResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteOneWorkMomentResp.Merge(dst, src) +} +func (m *DeleteOneWorkMomentResp) XXX_Size() int { + return xxx_messageInfo_DeleteOneWorkMomentResp.Size(m) +} +func (m *DeleteOneWorkMomentResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteOneWorkMomentResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteOneWorkMomentResp proto.InternalMessageInfo + +func (m *DeleteOneWorkMomentResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type LikeOneWorkMomentReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + WorkMomentID string `protobuf:"bytes,2,opt,name=WorkMomentID" json:"WorkMomentID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LikeOneWorkMomentReq) Reset() { *m = LikeOneWorkMomentReq{} } +func (m *LikeOneWorkMomentReq) String() string { return proto.CompactTextString(m) } +func (*LikeOneWorkMomentReq) ProtoMessage() {} +func (*LikeOneWorkMomentReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{28} +} +func (m *LikeOneWorkMomentReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LikeOneWorkMomentReq.Unmarshal(m, b) +} +func (m *LikeOneWorkMomentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LikeOneWorkMomentReq.Marshal(b, m, deterministic) +} +func (dst *LikeOneWorkMomentReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_LikeOneWorkMomentReq.Merge(dst, src) +} +func (m *LikeOneWorkMomentReq) XXX_Size() int { + return xxx_messageInfo_LikeOneWorkMomentReq.Size(m) +} +func (m *LikeOneWorkMomentReq) XXX_DiscardUnknown() { + xxx_messageInfo_LikeOneWorkMomentReq.DiscardUnknown(m) +} + +var xxx_messageInfo_LikeOneWorkMomentReq proto.InternalMessageInfo + +func (m *LikeOneWorkMomentReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *LikeOneWorkMomentReq) GetWorkMomentID() string { + if m != nil { + return m.WorkMomentID + } + return "" +} + +func (m *LikeOneWorkMomentReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type LikeOneWorkMomentResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LikeOneWorkMomentResp) Reset() { *m = LikeOneWorkMomentResp{} } +func (m *LikeOneWorkMomentResp) String() string { return proto.CompactTextString(m) } +func (*LikeOneWorkMomentResp) ProtoMessage() {} +func (*LikeOneWorkMomentResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{29} +} +func (m *LikeOneWorkMomentResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LikeOneWorkMomentResp.Unmarshal(m, b) +} +func (m *LikeOneWorkMomentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LikeOneWorkMomentResp.Marshal(b, m, deterministic) +} +func (dst *LikeOneWorkMomentResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_LikeOneWorkMomentResp.Merge(dst, src) +} +func (m *LikeOneWorkMomentResp) XXX_Size() int { + return xxx_messageInfo_LikeOneWorkMomentResp.Size(m) +} +func (m *LikeOneWorkMomentResp) XXX_DiscardUnknown() { + xxx_messageInfo_LikeOneWorkMomentResp.DiscardUnknown(m) +} + +var xxx_messageInfo_LikeOneWorkMomentResp proto.InternalMessageInfo + +func (m *LikeOneWorkMomentResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type CommentOneWorkMomentReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + WorkMomentID string `protobuf:"bytes,2,opt,name=workMomentID" json:"workMomentID,omitempty"` + ReplyUserID string `protobuf:"bytes,3,opt,name=replyUserID" json:"replyUserID,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content" json:"content,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommentOneWorkMomentReq) Reset() { *m = CommentOneWorkMomentReq{} } +func (m *CommentOneWorkMomentReq) String() string { return proto.CompactTextString(m) } +func (*CommentOneWorkMomentReq) ProtoMessage() {} +func (*CommentOneWorkMomentReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{30} +} +func (m *CommentOneWorkMomentReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommentOneWorkMomentReq.Unmarshal(m, b) +} +func (m *CommentOneWorkMomentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommentOneWorkMomentReq.Marshal(b, m, deterministic) +} +func (dst *CommentOneWorkMomentReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommentOneWorkMomentReq.Merge(dst, src) +} +func (m *CommentOneWorkMomentReq) XXX_Size() int { + return xxx_messageInfo_CommentOneWorkMomentReq.Size(m) +} +func (m *CommentOneWorkMomentReq) XXX_DiscardUnknown() { + xxx_messageInfo_CommentOneWorkMomentReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CommentOneWorkMomentReq proto.InternalMessageInfo + +func (m *CommentOneWorkMomentReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *CommentOneWorkMomentReq) GetWorkMomentID() string { + if m != nil { + return m.WorkMomentID + } + return "" +} + +func (m *CommentOneWorkMomentReq) GetReplyUserID() string { + if m != nil { + return m.ReplyUserID + } + return "" +} + +func (m *CommentOneWorkMomentReq) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *CommentOneWorkMomentReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type CommentOneWorkMomentResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommentOneWorkMomentResp) Reset() { *m = CommentOneWorkMomentResp{} } +func (m *CommentOneWorkMomentResp) String() string { return proto.CompactTextString(m) } +func (*CommentOneWorkMomentResp) ProtoMessage() {} +func (*CommentOneWorkMomentResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{31} +} +func (m *CommentOneWorkMomentResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommentOneWorkMomentResp.Unmarshal(m, b) +} +func (m *CommentOneWorkMomentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommentOneWorkMomentResp.Marshal(b, m, deterministic) +} +func (dst *CommentOneWorkMomentResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommentOneWorkMomentResp.Merge(dst, src) +} +func (m *CommentOneWorkMomentResp) XXX_Size() int { + return xxx_messageInfo_CommentOneWorkMomentResp.Size(m) +} +func (m *CommentOneWorkMomentResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommentOneWorkMomentResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CommentOneWorkMomentResp proto.InternalMessageInfo + +func (m *CommentOneWorkMomentResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetWorkMomentByIDReq struct { + WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,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:"-"` +} + +func (m *GetWorkMomentByIDReq) Reset() { *m = GetWorkMomentByIDReq{} } +func (m *GetWorkMomentByIDReq) String() string { return proto.CompactTextString(m) } +func (*GetWorkMomentByIDReq) ProtoMessage() {} +func (*GetWorkMomentByIDReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{32} +} +func (m *GetWorkMomentByIDReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetWorkMomentByIDReq.Unmarshal(m, b) +} +func (m *GetWorkMomentByIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetWorkMomentByIDReq.Marshal(b, m, deterministic) +} +func (dst *GetWorkMomentByIDReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetWorkMomentByIDReq.Merge(dst, src) +} +func (m *GetWorkMomentByIDReq) XXX_Size() int { + return xxx_messageInfo_GetWorkMomentByIDReq.Size(m) +} +func (m *GetWorkMomentByIDReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetWorkMomentByIDReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetWorkMomentByIDReq proto.InternalMessageInfo + +func (m *GetWorkMomentByIDReq) GetWorkMomentID() string { + if m != nil { + return m.WorkMomentID + } + return "" +} + +func (m *GetWorkMomentByIDReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *GetWorkMomentByIDReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetWorkMomentByIDResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + WorkMoment *WorkMoment `protobuf:"bytes,2,opt,name=workMoment" json:"workMoment,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetWorkMomentByIDResp) Reset() { *m = GetWorkMomentByIDResp{} } +func (m *GetWorkMomentByIDResp) String() string { return proto.CompactTextString(m) } +func (*GetWorkMomentByIDResp) ProtoMessage() {} +func (*GetWorkMomentByIDResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{33} +} +func (m *GetWorkMomentByIDResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetWorkMomentByIDResp.Unmarshal(m, b) +} +func (m *GetWorkMomentByIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetWorkMomentByIDResp.Marshal(b, m, deterministic) +} +func (dst *GetWorkMomentByIDResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetWorkMomentByIDResp.Merge(dst, src) +} +func (m *GetWorkMomentByIDResp) XXX_Size() int { + return xxx_messageInfo_GetWorkMomentByIDResp.Size(m) +} +func (m *GetWorkMomentByIDResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetWorkMomentByIDResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetWorkMomentByIDResp proto.InternalMessageInfo + +func (m *GetWorkMomentByIDResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetWorkMomentByIDResp) GetWorkMoment() *WorkMoment { + if m != nil { + return m.WorkMoment + } + return nil +} + +type ChangeWorkMomentPermissionReq struct { + WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"` + Permission int32 `protobuf:"varint,3,opt,name=permission" json:"permission,omitempty"` + PermissionUserIDList []string `protobuf:"bytes,4,rep,name=permissionUserIDList" json:"permissionUserIDList,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChangeWorkMomentPermissionReq) Reset() { *m = ChangeWorkMomentPermissionReq{} } +func (m *ChangeWorkMomentPermissionReq) String() string { return proto.CompactTextString(m) } +func (*ChangeWorkMomentPermissionReq) ProtoMessage() {} +func (*ChangeWorkMomentPermissionReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{34} +} +func (m *ChangeWorkMomentPermissionReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChangeWorkMomentPermissionReq.Unmarshal(m, b) +} +func (m *ChangeWorkMomentPermissionReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChangeWorkMomentPermissionReq.Marshal(b, m, deterministic) +} +func (dst *ChangeWorkMomentPermissionReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChangeWorkMomentPermissionReq.Merge(dst, src) +} +func (m *ChangeWorkMomentPermissionReq) XXX_Size() int { + return xxx_messageInfo_ChangeWorkMomentPermissionReq.Size(m) +} +func (m *ChangeWorkMomentPermissionReq) XXX_DiscardUnknown() { + xxx_messageInfo_ChangeWorkMomentPermissionReq.DiscardUnknown(m) +} + +var xxx_messageInfo_ChangeWorkMomentPermissionReq proto.InternalMessageInfo + +func (m *ChangeWorkMomentPermissionReq) GetWorkMomentID() string { + if m != nil { + return m.WorkMomentID + } + return "" +} + +func (m *ChangeWorkMomentPermissionReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *ChangeWorkMomentPermissionReq) GetPermission() int32 { + if m != nil { + return m.Permission + } + return 0 +} + +func (m *ChangeWorkMomentPermissionReq) GetPermissionUserIDList() []string { + if m != nil { + return m.PermissionUserIDList + } + return nil +} + +func (m *ChangeWorkMomentPermissionReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type ChangeWorkMomentPermissionResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChangeWorkMomentPermissionResp) Reset() { *m = ChangeWorkMomentPermissionResp{} } +func (m *ChangeWorkMomentPermissionResp) String() string { return proto.CompactTextString(m) } +func (*ChangeWorkMomentPermissionResp) ProtoMessage() {} +func (*ChangeWorkMomentPermissionResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{35} +} +func (m *ChangeWorkMomentPermissionResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChangeWorkMomentPermissionResp.Unmarshal(m, b) +} +func (m *ChangeWorkMomentPermissionResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChangeWorkMomentPermissionResp.Marshal(b, m, deterministic) +} +func (dst *ChangeWorkMomentPermissionResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChangeWorkMomentPermissionResp.Merge(dst, src) +} +func (m *ChangeWorkMomentPermissionResp) XXX_Size() int { + return xxx_messageInfo_ChangeWorkMomentPermissionResp.Size(m) +} +func (m *ChangeWorkMomentPermissionResp) XXX_DiscardUnknown() { + xxx_messageInfo_ChangeWorkMomentPermissionResp.DiscardUnknown(m) +} + +var xxx_messageInfo_ChangeWorkMomentPermissionResp proto.InternalMessageInfo + +func (m *ChangeWorkMomentPermissionResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetUserWorkMomentsReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserWorkMomentsReq) Reset() { *m = GetUserWorkMomentsReq{} } +func (m *GetUserWorkMomentsReq) String() string { return proto.CompactTextString(m) } +func (*GetUserWorkMomentsReq) ProtoMessage() {} +func (*GetUserWorkMomentsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{36} +} +func (m *GetUserWorkMomentsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserWorkMomentsReq.Unmarshal(m, b) +} +func (m *GetUserWorkMomentsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserWorkMomentsReq.Marshal(b, m, deterministic) +} +func (dst *GetUserWorkMomentsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserWorkMomentsReq.Merge(dst, src) +} +func (m *GetUserWorkMomentsReq) XXX_Size() int { + return xxx_messageInfo_GetUserWorkMomentsReq.Size(m) +} +func (m *GetUserWorkMomentsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserWorkMomentsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserWorkMomentsReq proto.InternalMessageInfo + +func (m *GetUserWorkMomentsReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUserWorkMomentsReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *GetUserWorkMomentsReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUserWorkMomentsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUserWorkMomentsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + WorkMoments []*WorkMoment `protobuf:"bytes,2,rep,name=workMoments" json:"workMoments,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserWorkMomentsResp) Reset() { *m = GetUserWorkMomentsResp{} } +func (m *GetUserWorkMomentsResp) String() string { return proto.CompactTextString(m) } +func (*GetUserWorkMomentsResp) ProtoMessage() {} +func (*GetUserWorkMomentsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{37} +} +func (m *GetUserWorkMomentsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserWorkMomentsResp.Unmarshal(m, b) +} +func (m *GetUserWorkMomentsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserWorkMomentsResp.Marshal(b, m, deterministic) +} +func (dst *GetUserWorkMomentsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserWorkMomentsResp.Merge(dst, src) +} +func (m *GetUserWorkMomentsResp) XXX_Size() int { + return xxx_messageInfo_GetUserWorkMomentsResp.Size(m) +} +func (m *GetUserWorkMomentsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserWorkMomentsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserWorkMomentsResp proto.InternalMessageInfo + +func (m *GetUserWorkMomentsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserWorkMomentsResp) GetWorkMoments() []*WorkMoment { + if m != nil { + return m.WorkMoments + } + return nil +} + +func (m *GetUserWorkMomentsResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +type GetUserFriendWorkMomentsReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserFriendWorkMomentsReq) Reset() { *m = GetUserFriendWorkMomentsReq{} } +func (m *GetUserFriendWorkMomentsReq) String() string { return proto.CompactTextString(m) } +func (*GetUserFriendWorkMomentsReq) ProtoMessage() {} +func (*GetUserFriendWorkMomentsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{38} +} +func (m *GetUserFriendWorkMomentsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserFriendWorkMomentsReq.Unmarshal(m, b) +} +func (m *GetUserFriendWorkMomentsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserFriendWorkMomentsReq.Marshal(b, m, deterministic) +} +func (dst *GetUserFriendWorkMomentsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserFriendWorkMomentsReq.Merge(dst, src) +} +func (m *GetUserFriendWorkMomentsReq) XXX_Size() int { + return xxx_messageInfo_GetUserFriendWorkMomentsReq.Size(m) +} +func (m *GetUserFriendWorkMomentsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserFriendWorkMomentsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserFriendWorkMomentsReq proto.InternalMessageInfo + +func (m *GetUserFriendWorkMomentsReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUserFriendWorkMomentsReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUserFriendWorkMomentsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUserFriendWorkMomentsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + WorkMoments []*WorkMoment `protobuf:"bytes,2,rep,name=workMoments" json:"workMoments,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserFriendWorkMomentsResp) Reset() { *m = GetUserFriendWorkMomentsResp{} } +func (m *GetUserFriendWorkMomentsResp) String() string { return proto.CompactTextString(m) } +func (*GetUserFriendWorkMomentsResp) ProtoMessage() {} +func (*GetUserFriendWorkMomentsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{39} +} +func (m *GetUserFriendWorkMomentsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserFriendWorkMomentsResp.Unmarshal(m, b) +} +func (m *GetUserFriendWorkMomentsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserFriendWorkMomentsResp.Marshal(b, m, deterministic) +} +func (dst *GetUserFriendWorkMomentsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserFriendWorkMomentsResp.Merge(dst, src) +} +func (m *GetUserFriendWorkMomentsResp) XXX_Size() int { + return xxx_messageInfo_GetUserFriendWorkMomentsResp.Size(m) +} +func (m *GetUserFriendWorkMomentsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserFriendWorkMomentsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserFriendWorkMomentsResp proto.InternalMessageInfo + +func (m *GetUserFriendWorkMomentsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserFriendWorkMomentsResp) GetWorkMoments() []*WorkMoment { + if m != nil { + return m.WorkMoments + } + return nil +} + +func (m *GetUserFriendWorkMomentsResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +type WorkMomentNotificationMsg struct { + NotificationMsgType int32 `protobuf:"varint,1,opt,name=notificationMsgType" json:"notificationMsgType,omitempty"` + ReplyUserName string `protobuf:"bytes,2,opt,name=replyUserName" json:"replyUserName,omitempty"` + ReplyUserID string `protobuf:"bytes,3,opt,name=replyUserID" json:"replyUserID,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content" json:"content,omitempty"` + ContentID string `protobuf:"bytes,5,opt,name=contentID" json:"contentID,omitempty"` + WorkMomentID string `protobuf:"bytes,6,opt,name=workMomentID" json:"workMomentID,omitempty"` + UserID string `protobuf:"bytes,7,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,8,opt,name=userName" json:"userName,omitempty"` + FaceURL string `protobuf:"bytes,9,opt,name=faceURL" json:"faceURL,omitempty"` + WorkMomentContent string `protobuf:"bytes,10,opt,name=workMomentContent" json:"workMomentContent,omitempty"` + CreateTime int32 `protobuf:"varint,11,opt,name=createTime" json:"createTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WorkMomentNotificationMsg) Reset() { *m = WorkMomentNotificationMsg{} } +func (m *WorkMomentNotificationMsg) String() string { return proto.CompactTextString(m) } +func (*WorkMomentNotificationMsg) ProtoMessage() {} +func (*WorkMomentNotificationMsg) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{40} +} +func (m *WorkMomentNotificationMsg) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WorkMomentNotificationMsg.Unmarshal(m, b) +} +func (m *WorkMomentNotificationMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WorkMomentNotificationMsg.Marshal(b, m, deterministic) +} +func (dst *WorkMomentNotificationMsg) XXX_Merge(src proto.Message) { + xxx_messageInfo_WorkMomentNotificationMsg.Merge(dst, src) +} +func (m *WorkMomentNotificationMsg) XXX_Size() int { + return xxx_messageInfo_WorkMomentNotificationMsg.Size(m) +} +func (m *WorkMomentNotificationMsg) XXX_DiscardUnknown() { + xxx_messageInfo_WorkMomentNotificationMsg.DiscardUnknown(m) +} + +var xxx_messageInfo_WorkMomentNotificationMsg proto.InternalMessageInfo + +func (m *WorkMomentNotificationMsg) GetNotificationMsgType() int32 { + if m != nil { + return m.NotificationMsgType + } + return 0 +} + +func (m *WorkMomentNotificationMsg) GetReplyUserName() string { + if m != nil { + return m.ReplyUserName + } + return "" +} + +func (m *WorkMomentNotificationMsg) GetReplyUserID() string { + if m != nil { + return m.ReplyUserID + } + return "" +} + +func (m *WorkMomentNotificationMsg) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *WorkMomentNotificationMsg) GetContentID() string { + if m != nil { + return m.ContentID + } + return "" +} + +func (m *WorkMomentNotificationMsg) GetWorkMomentID() string { + if m != nil { + return m.WorkMomentID + } + return "" +} + +func (m *WorkMomentNotificationMsg) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *WorkMomentNotificationMsg) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +func (m *WorkMomentNotificationMsg) GetFaceURL() string { + if m != nil { + return m.FaceURL + } + return "" +} + +func (m *WorkMomentNotificationMsg) GetWorkMomentContent() string { + if m != nil { + return m.WorkMomentContent + } + return "" +} + +func (m *WorkMomentNotificationMsg) GetCreateTime() int32 { + if m != nil { + return m.CreateTime + } + return 0 +} + +type SetUserWorkMomentsLevelReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Level int32 `protobuf:"varint,2,opt,name=level" json:"level,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetUserWorkMomentsLevelReq) Reset() { *m = SetUserWorkMomentsLevelReq{} } +func (m *SetUserWorkMomentsLevelReq) String() string { return proto.CompactTextString(m) } +func (*SetUserWorkMomentsLevelReq) ProtoMessage() {} +func (*SetUserWorkMomentsLevelReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{41} +} +func (m *SetUserWorkMomentsLevelReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetUserWorkMomentsLevelReq.Unmarshal(m, b) +} +func (m *SetUserWorkMomentsLevelReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetUserWorkMomentsLevelReq.Marshal(b, m, deterministic) +} +func (dst *SetUserWorkMomentsLevelReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetUserWorkMomentsLevelReq.Merge(dst, src) +} +func (m *SetUserWorkMomentsLevelReq) XXX_Size() int { + return xxx_messageInfo_SetUserWorkMomentsLevelReq.Size(m) +} +func (m *SetUserWorkMomentsLevelReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetUserWorkMomentsLevelReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetUserWorkMomentsLevelReq proto.InternalMessageInfo + +func (m *SetUserWorkMomentsLevelReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *SetUserWorkMomentsLevelReq) GetLevel() int32 { + if m != nil { + return m.Level + } + return 0 +} + +func (m *SetUserWorkMomentsLevelReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SetUserWorkMomentsLevelResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetUserWorkMomentsLevelResp) Reset() { *m = SetUserWorkMomentsLevelResp{} } +func (m *SetUserWorkMomentsLevelResp) String() string { return proto.CompactTextString(m) } +func (*SetUserWorkMomentsLevelResp) ProtoMessage() {} +func (*SetUserWorkMomentsLevelResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_45d86d1784e03bf7, []int{42} +} +func (m *SetUserWorkMomentsLevelResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetUserWorkMomentsLevelResp.Unmarshal(m, b) +} +func (m *SetUserWorkMomentsLevelResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetUserWorkMomentsLevelResp.Marshal(b, m, deterministic) +} +func (dst *SetUserWorkMomentsLevelResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetUserWorkMomentsLevelResp.Merge(dst, src) +} +func (m *SetUserWorkMomentsLevelResp) XXX_Size() int { + return xxx_messageInfo_SetUserWorkMomentsLevelResp.Size(m) +} +func (m *SetUserWorkMomentsLevelResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetUserWorkMomentsLevelResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetUserWorkMomentsLevelResp proto.InternalMessageInfo + +func (m *SetUserWorkMomentsLevelResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func init() { + proto.RegisterType((*CommonResp)(nil), "office.CommonResp") + proto.RegisterType((*TagUser)(nil), "office.TagUser") + proto.RegisterType((*Tag)(nil), "office.Tag") + proto.RegisterType((*GetUserTagsReq)(nil), "office.GetUserTagsReq") + proto.RegisterType((*GetUserTagsResp)(nil), "office.GetUserTagsResp") + proto.RegisterType((*CreateTagReq)(nil), "office.CreateTagReq") + proto.RegisterType((*CreateTagResp)(nil), "office.CreateTagResp") + proto.RegisterType((*DeleteTagReq)(nil), "office.DeleteTagReq") + proto.RegisterType((*DeleteTagResp)(nil), "office.DeleteTagResp") + proto.RegisterType((*SetTagReq)(nil), "office.SetTagReq") + proto.RegisterType((*SetTagResp)(nil), "office.SetTagResp") + proto.RegisterType((*SendMsg2TagReq)(nil), "office.SendMsg2TagReq") + proto.RegisterType((*SendMsg2TagResp)(nil), "office.SendMsg2TagResp") + proto.RegisterType((*GetTagSendLogsReq)(nil), "office.GetTagSendLogsReq") + proto.RegisterType((*TagSendLog)(nil), "office.TagSendLog") + proto.RegisterType((*GetTagSendLogsResp)(nil), "office.GetTagSendLogsResp") + proto.RegisterType((*GetUserTagByIDReq)(nil), "office.GetUserTagByIDReq") + proto.RegisterType((*GetUserTagByIDResp)(nil), "office.GetUserTagByIDResp") + proto.RegisterType((*LikeUser)(nil), "office.LikeUser") + proto.RegisterType((*NotificationUser)(nil), "office.NotificationUser") + proto.RegisterType((*Comment)(nil), "office.Comment") + proto.RegisterType((*PermissionGroup)(nil), "office.PermissionGroup") + proto.RegisterType((*WorkMomentUser)(nil), "office.WorkMomentUser") + proto.RegisterType((*WorkMoment)(nil), "office.WorkMoment") + proto.RegisterType((*CreateOneWorkMomentReq)(nil), "office.CreateOneWorkMomentReq") + proto.RegisterType((*CreateOneWorkMomentResp)(nil), "office.CreateOneWorkMomentResp") + proto.RegisterType((*DeleteOneWorkMomentReq)(nil), "office.DeleteOneWorkMomentReq") + proto.RegisterType((*DeleteOneWorkMomentResp)(nil), "office.DeleteOneWorkMomentResp") + proto.RegisterType((*LikeOneWorkMomentReq)(nil), "office.LikeOneWorkMomentReq") + proto.RegisterType((*LikeOneWorkMomentResp)(nil), "office.LikeOneWorkMomentResp") + proto.RegisterType((*CommentOneWorkMomentReq)(nil), "office.CommentOneWorkMomentReq") + proto.RegisterType((*CommentOneWorkMomentResp)(nil), "office.CommentOneWorkMomentResp") + proto.RegisterType((*GetWorkMomentByIDReq)(nil), "office.GetWorkMomentByIDReq") + proto.RegisterType((*GetWorkMomentByIDResp)(nil), "office.GetWorkMomentByIDResp") + proto.RegisterType((*ChangeWorkMomentPermissionReq)(nil), "office.ChangeWorkMomentPermissionReq") + proto.RegisterType((*ChangeWorkMomentPermissionResp)(nil), "office.ChangeWorkMomentPermissionResp") + proto.RegisterType((*GetUserWorkMomentsReq)(nil), "office.GetUserWorkMomentsReq") + proto.RegisterType((*GetUserWorkMomentsResp)(nil), "office.GetUserWorkMomentsResp") + proto.RegisterType((*GetUserFriendWorkMomentsReq)(nil), "office.GetUserFriendWorkMomentsReq") + proto.RegisterType((*GetUserFriendWorkMomentsResp)(nil), "office.GetUserFriendWorkMomentsResp") + proto.RegisterType((*WorkMomentNotificationMsg)(nil), "office.WorkMomentNotificationMsg") + proto.RegisterType((*SetUserWorkMomentsLevelReq)(nil), "office.SetUserWorkMomentsLevelReq") + proto.RegisterType((*SetUserWorkMomentsLevelResp)(nil), "office.SetUserWorkMomentsLevelResp") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for OfficeService service + +type OfficeServiceClient interface { + GetUserTags(ctx context.Context, in *GetUserTagsReq, opts ...grpc.CallOption) (*GetUserTagsResp, error) + CreateTag(ctx context.Context, in *CreateTagReq, opts ...grpc.CallOption) (*CreateTagResp, error) + DeleteTag(ctx context.Context, in *DeleteTagReq, opts ...grpc.CallOption) (*DeleteTagResp, error) + SetTag(ctx context.Context, in *SetTagReq, opts ...grpc.CallOption) (*SetTagResp, error) + SendMsg2Tag(ctx context.Context, in *SendMsg2TagReq, opts ...grpc.CallOption) (*SendMsg2TagResp, error) + GetTagSendLogs(ctx context.Context, in *GetTagSendLogsReq, opts ...grpc.CallOption) (*GetTagSendLogsResp, error) + GetUserTagByID(ctx context.Context, in *GetUserTagByIDReq, opts ...grpc.CallOption) (*GetUserTagByIDResp, error) + CreateOneWorkMoment(ctx context.Context, in *CreateOneWorkMomentReq, opts ...grpc.CallOption) (*CreateOneWorkMomentResp, error) + DeleteOneWorkMoment(ctx context.Context, in *DeleteOneWorkMomentReq, opts ...grpc.CallOption) (*DeleteOneWorkMomentResp, error) + LikeOneWorkMoment(ctx context.Context, in *LikeOneWorkMomentReq, opts ...grpc.CallOption) (*LikeOneWorkMomentResp, error) + CommentOneWorkMoment(ctx context.Context, in *CommentOneWorkMomentReq, opts ...grpc.CallOption) (*CommentOneWorkMomentResp, error) + GetWorkMomentByID(ctx context.Context, in *GetWorkMomentByIDReq, opts ...grpc.CallOption) (*GetWorkMomentByIDResp, error) + ChangeWorkMomentPermission(ctx context.Context, in *ChangeWorkMomentPermissionReq, opts ...grpc.CallOption) (*ChangeWorkMomentPermissionResp, error) + // / user self + GetUserWorkMoments(ctx context.Context, in *GetUserWorkMomentsReq, opts ...grpc.CallOption) (*GetUserWorkMomentsResp, error) + // / users friend + GetUserFriendWorkMoments(ctx context.Context, in *GetUserFriendWorkMomentsReq, opts ...grpc.CallOption) (*GetUserFriendWorkMomentsResp, error) + SetUserWorkMomentsLevel(ctx context.Context, in *SetUserWorkMomentsLevelReq, opts ...grpc.CallOption) (*SetUserWorkMomentsLevelResp, error) +} + +type officeServiceClient struct { + cc *grpc.ClientConn +} + +func NewOfficeServiceClient(cc *grpc.ClientConn) OfficeServiceClient { + return &officeServiceClient{cc} +} + +func (c *officeServiceClient) GetUserTags(ctx context.Context, in *GetUserTagsReq, opts ...grpc.CallOption) (*GetUserTagsResp, error) { + out := new(GetUserTagsResp) + err := grpc.Invoke(ctx, "/office.OfficeService/GetUserTags", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) CreateTag(ctx context.Context, in *CreateTagReq, opts ...grpc.CallOption) (*CreateTagResp, error) { + out := new(CreateTagResp) + err := grpc.Invoke(ctx, "/office.OfficeService/CreateTag", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) DeleteTag(ctx context.Context, in *DeleteTagReq, opts ...grpc.CallOption) (*DeleteTagResp, error) { + out := new(DeleteTagResp) + err := grpc.Invoke(ctx, "/office.OfficeService/DeleteTag", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) SetTag(ctx context.Context, in *SetTagReq, opts ...grpc.CallOption) (*SetTagResp, error) { + out := new(SetTagResp) + err := grpc.Invoke(ctx, "/office.OfficeService/SetTag", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) SendMsg2Tag(ctx context.Context, in *SendMsg2TagReq, opts ...grpc.CallOption) (*SendMsg2TagResp, error) { + out := new(SendMsg2TagResp) + err := grpc.Invoke(ctx, "/office.OfficeService/SendMsg2Tag", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) GetTagSendLogs(ctx context.Context, in *GetTagSendLogsReq, opts ...grpc.CallOption) (*GetTagSendLogsResp, error) { + out := new(GetTagSendLogsResp) + err := grpc.Invoke(ctx, "/office.OfficeService/GetTagSendLogs", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) GetUserTagByID(ctx context.Context, in *GetUserTagByIDReq, opts ...grpc.CallOption) (*GetUserTagByIDResp, error) { + out := new(GetUserTagByIDResp) + err := grpc.Invoke(ctx, "/office.OfficeService/GetUserTagByID", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) CreateOneWorkMoment(ctx context.Context, in *CreateOneWorkMomentReq, opts ...grpc.CallOption) (*CreateOneWorkMomentResp, error) { + out := new(CreateOneWorkMomentResp) + err := grpc.Invoke(ctx, "/office.OfficeService/CreateOneWorkMoment", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) DeleteOneWorkMoment(ctx context.Context, in *DeleteOneWorkMomentReq, opts ...grpc.CallOption) (*DeleteOneWorkMomentResp, error) { + out := new(DeleteOneWorkMomentResp) + err := grpc.Invoke(ctx, "/office.OfficeService/DeleteOneWorkMoment", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) LikeOneWorkMoment(ctx context.Context, in *LikeOneWorkMomentReq, opts ...grpc.CallOption) (*LikeOneWorkMomentResp, error) { + out := new(LikeOneWorkMomentResp) + err := grpc.Invoke(ctx, "/office.OfficeService/LikeOneWorkMoment", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) CommentOneWorkMoment(ctx context.Context, in *CommentOneWorkMomentReq, opts ...grpc.CallOption) (*CommentOneWorkMomentResp, error) { + out := new(CommentOneWorkMomentResp) + err := grpc.Invoke(ctx, "/office.OfficeService/CommentOneWorkMoment", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) GetWorkMomentByID(ctx context.Context, in *GetWorkMomentByIDReq, opts ...grpc.CallOption) (*GetWorkMomentByIDResp, error) { + out := new(GetWorkMomentByIDResp) + err := grpc.Invoke(ctx, "/office.OfficeService/GetWorkMomentByID", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) ChangeWorkMomentPermission(ctx context.Context, in *ChangeWorkMomentPermissionReq, opts ...grpc.CallOption) (*ChangeWorkMomentPermissionResp, error) { + out := new(ChangeWorkMomentPermissionResp) + err := grpc.Invoke(ctx, "/office.OfficeService/ChangeWorkMomentPermission", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) GetUserWorkMoments(ctx context.Context, in *GetUserWorkMomentsReq, opts ...grpc.CallOption) (*GetUserWorkMomentsResp, error) { + out := new(GetUserWorkMomentsResp) + err := grpc.Invoke(ctx, "/office.OfficeService/GetUserWorkMoments", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) GetUserFriendWorkMoments(ctx context.Context, in *GetUserFriendWorkMomentsReq, opts ...grpc.CallOption) (*GetUserFriendWorkMomentsResp, error) { + out := new(GetUserFriendWorkMomentsResp) + err := grpc.Invoke(ctx, "/office.OfficeService/GetUserFriendWorkMoments", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) SetUserWorkMomentsLevel(ctx context.Context, in *SetUserWorkMomentsLevelReq, opts ...grpc.CallOption) (*SetUserWorkMomentsLevelResp, error) { + out := new(SetUserWorkMomentsLevelResp) + err := grpc.Invoke(ctx, "/office.OfficeService/SetUserWorkMomentsLevel", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for OfficeService service + +type OfficeServiceServer interface { + GetUserTags(context.Context, *GetUserTagsReq) (*GetUserTagsResp, error) + CreateTag(context.Context, *CreateTagReq) (*CreateTagResp, error) + DeleteTag(context.Context, *DeleteTagReq) (*DeleteTagResp, error) + SetTag(context.Context, *SetTagReq) (*SetTagResp, error) + SendMsg2Tag(context.Context, *SendMsg2TagReq) (*SendMsg2TagResp, error) + GetTagSendLogs(context.Context, *GetTagSendLogsReq) (*GetTagSendLogsResp, error) + GetUserTagByID(context.Context, *GetUserTagByIDReq) (*GetUserTagByIDResp, error) + CreateOneWorkMoment(context.Context, *CreateOneWorkMomentReq) (*CreateOneWorkMomentResp, error) + DeleteOneWorkMoment(context.Context, *DeleteOneWorkMomentReq) (*DeleteOneWorkMomentResp, error) + LikeOneWorkMoment(context.Context, *LikeOneWorkMomentReq) (*LikeOneWorkMomentResp, error) + CommentOneWorkMoment(context.Context, *CommentOneWorkMomentReq) (*CommentOneWorkMomentResp, error) + GetWorkMomentByID(context.Context, *GetWorkMomentByIDReq) (*GetWorkMomentByIDResp, error) + ChangeWorkMomentPermission(context.Context, *ChangeWorkMomentPermissionReq) (*ChangeWorkMomentPermissionResp, error) + // / user self + GetUserWorkMoments(context.Context, *GetUserWorkMomentsReq) (*GetUserWorkMomentsResp, error) + // / users friend + GetUserFriendWorkMoments(context.Context, *GetUserFriendWorkMomentsReq) (*GetUserFriendWorkMomentsResp, error) + SetUserWorkMomentsLevel(context.Context, *SetUserWorkMomentsLevelReq) (*SetUserWorkMomentsLevelResp, error) +} + +func RegisterOfficeServiceServer(s *grpc.Server, srv OfficeServiceServer) { + s.RegisterService(&_OfficeService_serviceDesc, srv) +} + +func _OfficeService_GetUserTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserTagsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).GetUserTags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/GetUserTags", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).GetUserTags(ctx, req.(*GetUserTagsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_CreateTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateTagReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).CreateTag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/CreateTag", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).CreateTag(ctx, req.(*CreateTagReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_DeleteTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteTagReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).DeleteTag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/DeleteTag", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).DeleteTag(ctx, req.(*DeleteTagReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_SetTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetTagReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).SetTag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/SetTag", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).SetTag(ctx, req.(*SetTagReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_SendMsg2Tag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMsg2TagReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).SendMsg2Tag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/SendMsg2Tag", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).SendMsg2Tag(ctx, req.(*SendMsg2TagReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_GetTagSendLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTagSendLogsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).GetTagSendLogs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/GetTagSendLogs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).GetTagSendLogs(ctx, req.(*GetTagSendLogsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_GetUserTagByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserTagByIDReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).GetUserTagByID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/GetUserTagByID", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).GetUserTagByID(ctx, req.(*GetUserTagByIDReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_CreateOneWorkMoment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateOneWorkMomentReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).CreateOneWorkMoment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/CreateOneWorkMoment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).CreateOneWorkMoment(ctx, req.(*CreateOneWorkMomentReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_DeleteOneWorkMoment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteOneWorkMomentReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).DeleteOneWorkMoment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/DeleteOneWorkMoment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).DeleteOneWorkMoment(ctx, req.(*DeleteOneWorkMomentReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_LikeOneWorkMoment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LikeOneWorkMomentReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).LikeOneWorkMoment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/LikeOneWorkMoment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).LikeOneWorkMoment(ctx, req.(*LikeOneWorkMomentReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_CommentOneWorkMoment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CommentOneWorkMomentReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).CommentOneWorkMoment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/CommentOneWorkMoment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).CommentOneWorkMoment(ctx, req.(*CommentOneWorkMomentReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_GetWorkMomentByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetWorkMomentByIDReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).GetWorkMomentByID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/GetWorkMomentByID", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).GetWorkMomentByID(ctx, req.(*GetWorkMomentByIDReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_ChangeWorkMomentPermission_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChangeWorkMomentPermissionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).ChangeWorkMomentPermission(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/ChangeWorkMomentPermission", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).ChangeWorkMomentPermission(ctx, req.(*ChangeWorkMomentPermissionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_GetUserWorkMoments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserWorkMomentsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).GetUserWorkMoments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/GetUserWorkMoments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).GetUserWorkMoments(ctx, req.(*GetUserWorkMomentsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_GetUserFriendWorkMoments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserFriendWorkMomentsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).GetUserFriendWorkMoments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/GetUserFriendWorkMoments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).GetUserFriendWorkMoments(ctx, req.(*GetUserFriendWorkMomentsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_SetUserWorkMomentsLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetUserWorkMomentsLevelReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).SetUserWorkMomentsLevel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/SetUserWorkMomentsLevel", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).SetUserWorkMomentsLevel(ctx, req.(*SetUserWorkMomentsLevelReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _OfficeService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "office.OfficeService", + HandlerType: (*OfficeServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetUserTags", + Handler: _OfficeService_GetUserTags_Handler, + }, + { + MethodName: "CreateTag", + Handler: _OfficeService_CreateTag_Handler, + }, + { + MethodName: "DeleteTag", + Handler: _OfficeService_DeleteTag_Handler, + }, + { + MethodName: "SetTag", + Handler: _OfficeService_SetTag_Handler, + }, + { + MethodName: "SendMsg2Tag", + Handler: _OfficeService_SendMsg2Tag_Handler, + }, + { + MethodName: "GetTagSendLogs", + Handler: _OfficeService_GetTagSendLogs_Handler, + }, + { + MethodName: "GetUserTagByID", + Handler: _OfficeService_GetUserTagByID_Handler, + }, + { + MethodName: "CreateOneWorkMoment", + Handler: _OfficeService_CreateOneWorkMoment_Handler, + }, + { + MethodName: "DeleteOneWorkMoment", + Handler: _OfficeService_DeleteOneWorkMoment_Handler, + }, + { + MethodName: "LikeOneWorkMoment", + Handler: _OfficeService_LikeOneWorkMoment_Handler, + }, + { + MethodName: "CommentOneWorkMoment", + Handler: _OfficeService_CommentOneWorkMoment_Handler, + }, + { + MethodName: "GetWorkMomentByID", + Handler: _OfficeService_GetWorkMomentByID_Handler, + }, + { + MethodName: "ChangeWorkMomentPermission", + Handler: _OfficeService_ChangeWorkMomentPermission_Handler, + }, + { + MethodName: "GetUserWorkMoments", + Handler: _OfficeService_GetUserWorkMoments_Handler, + }, + { + MethodName: "GetUserFriendWorkMoments", + Handler: _OfficeService_GetUserFriendWorkMoments_Handler, + }, + { + MethodName: "SetUserWorkMomentsLevel", + Handler: _OfficeService_SetUserWorkMomentsLevel_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "office/office.proto", +} + +func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_45d86d1784e03bf7) } + +var fileDescriptor_office_45d86d1784e03bf7 = []byte{ + // 1621 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0x4f, 0x6f, 0xdc, 0x44, + 0x14, 0x97, 0x77, 0xb3, 0xd9, 0xec, 0xdb, 0xb4, 0x69, 0x26, 0xff, 0xb6, 0x6e, 0x93, 0x06, 0xb7, + 0x45, 0x15, 0xa0, 0x04, 0x85, 0x0a, 0x21, 0x10, 0x15, 0x6a, 0xb6, 0x8d, 0x16, 0xb2, 0x6d, 0x70, + 0x12, 0x2a, 0x38, 0x10, 0xb9, 0x9b, 0x89, 0xb1, 0xb2, 0xb1, 0x5d, 0x8f, 0x93, 0xd0, 0x13, 0x52, + 0xcf, 0x70, 0xe2, 0xcc, 0xa7, 0xe0, 0x33, 0x70, 0xe0, 0x84, 0x38, 0xf0, 0x0d, 0xf8, 0x0e, 0x5c, + 0xd1, 0x8c, 0xed, 0xf9, 0x63, 0x8f, 0x77, 0x17, 0x17, 0x0e, 0x9c, 0xd6, 0xef, 0xcd, 0x9b, 0x37, + 0xef, 0xfd, 0xe6, 0xcd, 0x9b, 0x37, 0x6f, 0x61, 0x21, 0x38, 0x39, 0xf1, 0x06, 0x78, 0x33, 0xf9, + 0xd9, 0x08, 0xa3, 0x20, 0x0e, 0xd0, 0x74, 0x42, 0x99, 0x6f, 0x3c, 0x0d, 0xb1, 0x7f, 0xd4, 0xeb, + 0x6f, 0x86, 0xa7, 0xee, 0x26, 0x1b, 0xda, 0x24, 0xc7, 0xa7, 0x47, 0x97, 0x64, 0xf3, 0x92, 0x24, + 0xa2, 0xd6, 0x03, 0x80, 0xed, 0xe0, 0xec, 0x2c, 0xf0, 0x6d, 0x4c, 0x42, 0xd4, 0x81, 0x26, 0x8e, + 0xa2, 0xed, 0xe0, 0x18, 0x77, 0x8c, 0x75, 0xe3, 0x5e, 0xc3, 0xce, 0x48, 0xb4, 0x0c, 0xd3, 0x38, + 0x8a, 0xfa, 0xc4, 0xed, 0xd4, 0xd6, 0x8d, 0x7b, 0x2d, 0x3b, 0xa5, 0xac, 0x8f, 0xa1, 0x79, 0xe0, + 0xb8, 0x87, 0x04, 0x47, 0x54, 0xe4, 0x9c, 0xe0, 0xa8, 0xd7, 0x65, 0x73, 0x5b, 0x76, 0x4a, 0x21, + 0x13, 0x66, 0xe8, 0xd7, 0x13, 0xe7, 0x0c, 0xa7, 0x93, 0x39, 0x6d, 0x3d, 0x87, 0xfa, 0x81, 0xe3, + 0xa2, 0x45, 0x68, 0xc4, 0x8e, 0xcb, 0x67, 0x26, 0x04, 0xb5, 0x26, 0x76, 0x5c, 0x69, 0x5e, 0x46, + 0xa2, 0xb7, 0x13, 0x95, 0xbb, 0x1e, 0x89, 0x3b, 0xf5, 0xf5, 0xfa, 0xbd, 0xf6, 0xd6, 0xdc, 0x46, + 0x8a, 0x40, 0x6a, 0x8d, 0xcd, 0x05, 0xac, 0x4f, 0xe1, 0xea, 0x0e, 0x8e, 0x29, 0xf3, 0xc0, 0x71, + 0x89, 0x8d, 0x5f, 0x94, 0x5a, 0xba, 0x0e, 0xed, 0x20, 0xc4, 0x91, 0x13, 0x7b, 0x81, 0xdf, 0xeb, + 0xa6, 0x8b, 0xca, 0x2c, 0xeb, 0x04, 0xe6, 0x14, 0x5d, 0x24, 0x44, 0x5b, 0x00, 0x03, 0x8e, 0x20, + 0x53, 0xd8, 0xde, 0x42, 0x99, 0x35, 0x02, 0x5b, 0x5b, 0x92, 0x42, 0xb7, 0x60, 0x2a, 0x76, 0x5c, + 0xd2, 0xa9, 0x31, 0xdb, 0xdb, 0x92, 0xed, 0x36, 0x1b, 0xb0, 0x5e, 0x19, 0x30, 0xbb, 0x1d, 0x61, + 0x27, 0xc6, 0x94, 0x87, 0x5f, 0xc8, 0x58, 0x18, 0x2a, 0x16, 0xc2, 0x99, 0x9a, 0xe2, 0xcc, 0x1a, + 0x40, 0xf2, 0xc5, 0x51, 0x6a, 0xd9, 0x12, 0x27, 0xef, 0xec, 0x54, 0xd1, 0xd9, 0x6d, 0xb8, 0x22, + 0xd9, 0x50, 0xcd, 0x55, 0xeb, 0x6b, 0x98, 0xed, 0xe2, 0x21, 0xe6, 0x8e, 0x94, 0x61, 0xcf, 0x43, + 0xa0, 0x26, 0x87, 0x40, 0xce, 0xc8, 0xba, 0xd6, 0x48, 0x49, 0x7f, 0x45, 0x23, 0x7f, 0x37, 0xa0, + 0xb5, 0x8f, 0xe3, 0x4a, 0x26, 0x76, 0xa0, 0xe9, 0xe3, 0x4b, 0xb6, 0x33, 0x89, 0x79, 0x19, 0x89, + 0x36, 0x00, 0x79, 0xfe, 0x20, 0xc2, 0x0e, 0xc1, 0x87, 0x62, 0x27, 0xa6, 0xd8, 0x4e, 0x68, 0x46, + 0xd0, 0x5b, 0x70, 0x2d, 0xc2, 0xc7, 0xe7, 0x03, 0x59, 0xba, 0xc1, 0xa4, 0x0b, 0xfc, 0x3c, 0x30, + 0xd3, 0x45, 0x60, 0x3e, 0x01, 0xc8, 0x5c, 0xaa, 0x88, 0xca, 0x9f, 0x06, 0x5c, 0xdd, 0xc7, 0xfe, + 0x71, 0x9f, 0xb8, 0x5b, 0x4a, 0x18, 0x32, 0xcb, 0x0c, 0x66, 0x59, 0x46, 0xd2, 0x53, 0x7e, 0x98, + 0x1d, 0xc9, 0x1a, 0x1b, 0xe2, 0x34, 0xba, 0x09, 0xad, 0x9d, 0x28, 0x38, 0x0f, 0xa5, 0x48, 0x14, + 0x0c, 0x0a, 0x37, 0xc1, 0xfe, 0x31, 0x8f, 0xc1, 0x94, 0xa2, 0x70, 0xd0, 0x2f, 0x1c, 0xed, 0x0d, + 0x9d, 0xf8, 0x24, 0x88, 0xce, 0x7a, 0xdd, 0x4e, 0x83, 0x65, 0xa5, 0x02, 0x9f, 0xda, 0x35, 0x08, + 0xfc, 0x18, 0xfb, 0x71, 0x0a, 0x45, 0x46, 0xe6, 0x81, 0x6a, 0x16, 0x81, 0x7a, 0x04, 0x73, 0x8a, + 0x97, 0x15, 0xd1, 0xfa, 0xd1, 0x80, 0xf9, 0x1d, 0x06, 0x38, 0xd5, 0xb6, 0x1b, 0x24, 0xa9, 0xa6, + 0x0b, 0xb0, 0xe7, 0xb8, 0x9e, 0xcf, 0x16, 0x4b, 0x35, 0xdd, 0xd9, 0x20, 0x38, 0xba, 0xc0, 0xd1, + 0x91, 0x13, 0x7a, 0x47, 0xa1, 0x13, 0x39, 0x67, 0x64, 0xc3, 0xc6, 0x2f, 0xce, 0x31, 0x89, 0x85, + 0xac, 0x2d, 0xcd, 0x2b, 0x3d, 0xe3, 0xe3, 0x8f, 0x47, 0x00, 0x20, 0x2c, 0x52, 0xf2, 0xa6, 0x31, + 0x26, 0x6f, 0xca, 0x98, 0xd6, 0x54, 0x4c, 0x4d, 0x98, 0xa1, 0x3b, 0x70, 0xe0, 0xa5, 0x31, 0x5f, + 0xb7, 0x39, 0x6d, 0xfd, 0x62, 0x00, 0xca, 0xc3, 0x50, 0x31, 0x4b, 0x3e, 0x52, 0xb0, 0xab, 0xb1, + 0x39, 0x77, 0xb5, 0xd8, 0x91, 0x30, 0xf0, 0x09, 0x2e, 0x01, 0xef, 0x3e, 0xb4, 0x63, 0x61, 0x4d, + 0x7a, 0x5f, 0x20, 0xc9, 0xef, 0x74, 0xc8, 0x96, 0xc5, 0xac, 0x01, 0xdb, 0xcd, 0x34, 0xd3, 0x3f, + 0x7c, 0xd9, 0xeb, 0xfe, 0x17, 0xc9, 0xcb, 0x65, 0x58, 0x29, 0x8b, 0x54, 0xc4, 0x6a, 0x15, 0xea, + 0xb1, 0xe3, 0xa6, 0x20, 0x29, 0x17, 0x0a, 0xe5, 0x5b, 0x0f, 0x60, 0x66, 0xd7, 0x3b, 0xc5, 0x95, + 0xef, 0xe9, 0xc7, 0x70, 0xed, 0x49, 0x10, 0x7b, 0x27, 0xde, 0x80, 0x99, 0x5e, 0x59, 0xcf, 0x5f, + 0x06, 0x34, 0xa9, 0x07, 0x34, 0x8a, 0x2a, 0xcc, 0xa7, 0x31, 0x79, 0xe2, 0x0c, 0xf0, 0xa1, 0xbd, + 0x9b, 0x25, 0xdb, 0x94, 0xa4, 0x60, 0x47, 0x38, 0x1c, 0xbe, 0x4c, 0x72, 0x64, 0x76, 0x9d, 0x49, + 0x2c, 0x74, 0x07, 0xae, 0x70, 0x92, 0x29, 0x6f, 0x30, 0x19, 0x95, 0x49, 0x73, 0x55, 0x1a, 0xe6, + 0x3c, 0xad, 0x0a, 0x86, 0x7c, 0x26, 0x9a, 0xea, 0x99, 0x58, 0x03, 0x18, 0x24, 0x97, 0x25, 0x3d, + 0x15, 0x33, 0x2c, 0x4f, 0x49, 0x1c, 0xab, 0x07, 0x73, 0x7b, 0x38, 0x3a, 0xf3, 0x08, 0xf1, 0x02, + 0x9f, 0x25, 0x3f, 0xba, 0x94, 0x4b, 0x3f, 0xa4, 0x5b, 0x5d, 0x30, 0xe8, 0x52, 0x8c, 0xe0, 0x51, + 0x95, 0x91, 0x56, 0x17, 0xae, 0x3e, 0x0b, 0xa2, 0xd3, 0x7e, 0x40, 0x61, 0xac, 0xbc, 0x15, 0xdf, + 0x4f, 0x01, 0x08, 0x35, 0xc8, 0x82, 0xd9, 0x4b, 0x4e, 0x71, 0x45, 0x0a, 0xaf, 0x34, 0x0d, 0xc9, + 0xcb, 0xd4, 0xcb, 0x77, 0x6c, 0x4a, 0xdd, 0x31, 0x09, 0xcb, 0x86, 0x8a, 0xe5, 0x87, 0x30, 0x3b, + 0x4c, 0xa3, 0x95, 0xa5, 0xaa, 0x69, 0x76, 0x64, 0x97, 0xb3, 0xa8, 0x56, 0x9d, 0xb7, 0x15, 0x59, + 0x9a, 0xe2, 0x06, 0x49, 0x80, 0x91, 0x4e, 0x53, 0x4d, 0x71, 0x69, 0xe0, 0xd9, 0x5c, 0x80, 0x6e, + 0x5a, 0xc8, 0x37, 0x25, 0xdb, 0x34, 0xc1, 0x41, 0x8f, 0x01, 0x09, 0x8a, 0x9b, 0xd3, 0x1a, 0x69, + 0x8e, 0x66, 0x06, 0xea, 0xc1, 0x42, 0xa8, 0x6e, 0x3e, 0x53, 0x04, 0x4c, 0xd1, 0x4a, 0xa6, 0x28, + 0x17, 0x1f, 0xb6, 0x6e, 0x0e, 0x7a, 0x1f, 0xc0, 0x89, 0xb9, 0x29, 0xed, 0x91, 0xa6, 0x48, 0x92, + 0xb9, 0xf8, 0x9c, 0x2d, 0xc4, 0xa7, 0x0f, 0xcb, 0x49, 0xb1, 0xf7, 0xd4, 0xc7, 0x42, 0x0d, 0x4d, + 0x7a, 0x5b, 0x00, 0x22, 0x0a, 0xf2, 0xe9, 0x48, 0x12, 0x95, 0xa4, 0x26, 0xa8, 0xa4, 0xfb, 0xb0, + 0xa2, 0x5d, 0xaf, 0xe2, 0xed, 0x7b, 0x01, 0xcb, 0x49, 0x19, 0x58, 0x30, 0xff, 0x75, 0x02, 0x7b, + 0x7c, 0x06, 0xef, 0xc3, 0x8a, 0x76, 0xdd, 0x8a, 0x6e, 0xc4, 0xb0, 0x48, 0xf3, 0x74, 0xc1, 0x89, + 0xb2, 0x03, 0x6e, 0xc1, 0xec, 0x33, 0xd9, 0xb9, 0xc4, 0x7c, 0x85, 0x37, 0x81, 0x13, 0x9f, 0xc1, + 0x92, 0x66, 0xd5, 0x8a, 0x2e, 0xfc, 0x6c, 0xc0, 0x4a, 0x7a, 0xd2, 0xfe, 0x89, 0x1b, 0x97, 0x1a, + 0x37, 0x2e, 0x73, 0x6e, 0xc8, 0x09, 0xbe, 0x5e, 0x4c, 0xf0, 0x52, 0x42, 0x99, 0x1a, 0x59, 0x04, + 0x36, 0x8a, 0x10, 0x3c, 0x81, 0x8e, 0xde, 0xe8, 0x8a, 0x28, 0x7c, 0x0b, 0x8b, 0x3b, 0x38, 0x16, + 0x8a, 0xb2, 0x0a, 0x62, 0x92, 0x68, 0x34, 0x61, 0x26, 0x08, 0x0f, 0xe5, 0x78, 0xe4, 0xf4, 0x04, + 0x9b, 0xf9, 0x1d, 0x2c, 0x69, 0x56, 0xae, 0x58, 0x56, 0xa8, 0x67, 0xbf, 0x36, 0xc9, 0xd9, 0xb7, + 0xfe, 0x30, 0x60, 0x75, 0xfb, 0x1b, 0xc7, 0x77, 0x25, 0x1c, 0x45, 0x6a, 0xfb, 0x37, 0x40, 0x50, + 0xd3, 0x76, 0xbd, 0x90, 0xb6, 0xb7, 0x60, 0x51, 0x4d, 0xc2, 0xca, 0xd3, 0x4b, 0x3b, 0x36, 0x41, + 0x88, 0x1c, 0xc0, 0xda, 0x28, 0xb7, 0xaa, 0x1f, 0x97, 0xa5, 0xb4, 0x06, 0x14, 0x7a, 0x47, 0x76, + 0x29, 0x46, 0x21, 0xa3, 0x3e, 0x37, 0xea, 0x15, 0x9f, 0x1b, 0xe3, 0x5b, 0x03, 0xbf, 0x1a, 0xb0, + 0xac, 0xb3, 0xba, 0x62, 0x98, 0xdd, 0x87, 0xb6, 0xd8, 0xfc, 0xac, 0x2d, 0xa2, 0x8b, 0x33, 0x59, + 0x2c, 0xf7, 0x3e, 0xa8, 0x57, 0x7c, 0x1f, 0x58, 0x3f, 0x19, 0x70, 0x23, 0xf5, 0xe5, 0x71, 0xe4, + 0x61, 0xff, 0x78, 0xc2, 0x7d, 0xe8, 0x6a, 0x9e, 0x27, 0xaf, 0x8d, 0xb5, 0xe6, 0x40, 0xff, 0x66, + 0xc0, 0xcd, 0x72, 0xfb, 0xfe, 0x8f, 0x88, 0xff, 0x50, 0x87, 0xeb, 0x62, 0x09, 0xf9, 0x61, 0xd1, + 0x27, 0x2e, 0x7a, 0x17, 0x16, 0x7c, 0x95, 0x75, 0xf0, 0x32, 0xcc, 0x1a, 0x92, 0xba, 0xa1, 0x62, + 0x65, 0x5f, 0xd3, 0x55, 0xf6, 0xaf, 0x73, 0x81, 0x28, 0xaf, 0x82, 0x46, 0xfe, 0x55, 0x90, 0xcf, + 0x67, 0xd3, 0x23, 0x4b, 0x8c, 0x66, 0x69, 0xed, 0x3c, 0x53, 0x5e, 0x3b, 0xb7, 0xd4, 0xda, 0xf9, + 0x1d, 0x98, 0x17, 0xda, 0xb7, 0x53, 0x9b, 0x81, 0xc9, 0x14, 0x07, 0x72, 0xb5, 0x5f, 0xbb, 0x50, + 0xfb, 0x0d, 0xc1, 0xdc, 0x2f, 0x1c, 0xe6, 0x5d, 0x7c, 0x81, 0x87, 0x63, 0x1e, 0xbd, 0x43, 0x2a, + 0xc3, 0xd0, 0x6e, 0xd8, 0x09, 0x31, 0x41, 0x3c, 0x7f, 0x0e, 0x37, 0x4a, 0x57, 0xab, 0x16, 0xcd, + 0x5b, 0xaf, 0x00, 0xae, 0x3c, 0x65, 0x12, 0xfb, 0x38, 0xba, 0xf0, 0x06, 0x18, 0x3d, 0x80, 0xb6, + 0xd4, 0xa8, 0x45, 0xbc, 0x42, 0x56, 0x3b, 0xc1, 0xe6, 0x8a, 0x96, 0x4f, 0x42, 0xf4, 0x01, 0xb4, + 0x78, 0xef, 0x13, 0x2d, 0xf2, 0xe5, 0xa5, 0x96, 0xac, 0xb9, 0xa4, 0xe1, 0x26, 0x33, 0x79, 0x43, + 0x52, 0xcc, 0x94, 0x7b, 0xa0, 0x62, 0xa6, 0xda, 0xb9, 0xdc, 0x84, 0xe9, 0xa4, 0x63, 0x87, 0xe6, + 0x33, 0x01, 0xde, 0x94, 0x34, 0x51, 0x9e, 0x45, 0x42, 0xea, 0xa4, 0xd4, 0xb9, 0x12, 0x4e, 0xaa, + 0x4d, 0x3b, 0xe1, 0x64, 0xbe, 0xcd, 0xb5, 0xc3, 0x3a, 0xe3, 0x52, 0xab, 0x06, 0x5d, 0x97, 0xf0, + 0x50, 0x3b, 0x59, 0xa6, 0x59, 0x36, 0xc4, 0x15, 0x49, 0x7d, 0x0c, 0x45, 0x91, 0xda, 0x44, 0x51, + 0x14, 0xe5, 0x5b, 0x1f, 0x5f, 0xc0, 0x82, 0xe6, 0x55, 0x80, 0xd6, 0x54, 0xa8, 0xf3, 0x75, 0xa5, + 0x79, 0x6b, 0xe4, 0x78, 0xa2, 0x57, 0x53, 0xa6, 0x0b, 0xbd, 0xfa, 0xb7, 0x83, 0xd0, 0x5b, 0x56, + 0xe3, 0xef, 0xc1, 0x7c, 0xa1, 0x72, 0x46, 0x37, 0xb3, 0x59, 0xba, 0x52, 0xde, 0x5c, 0x1d, 0x31, + 0x4a, 0x42, 0xf4, 0x25, 0x2c, 0xea, 0x0a, 0x51, 0x74, 0x2b, 0xf7, 0x8a, 0x2d, 0xe8, 0x5d, 0x1f, + 0x2d, 0x90, 0x18, 0x5b, 0xa8, 0x0c, 0x85, 0xb1, 0xba, 0x72, 0x55, 0x18, 0xab, 0x2f, 0x29, 0x4f, + 0xc1, 0x2c, 0x2f, 0x89, 0xd0, 0x5d, 0x6e, 0xd1, 0xa8, 0x6a, 0xd0, 0x7c, 0x73, 0x12, 0x31, 0x12, + 0xa2, 0x7d, 0xde, 0x2c, 0x93, 0xf2, 0x06, 0x5a, 0xcd, 0x45, 0x93, 0x7a, 0x79, 0x9b, 0x6b, 0xa3, + 0x86, 0x49, 0x88, 0x30, 0x74, 0xca, 0xee, 0x56, 0x74, 0x3b, 0x37, 0x57, 0x57, 0x1d, 0x98, 0x77, + 0xc6, 0x0b, 0x91, 0x10, 0x3d, 0x87, 0x95, 0x92, 0x9c, 0x87, 0x2c, 0xe9, 0x60, 0x97, 0xa4, 0x60, + 0xf3, 0xf6, 0x58, 0x19, 0x12, 0x3e, 0x9c, 0xff, 0x6a, 0x6e, 0x23, 0xfd, 0x1f, 0xf0, 0xa3, 0xe4, + 0xe7, 0xf9, 0x34, 0xfb, 0x93, 0xef, 0xbd, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x01, 0xfa, 0xac, + 0xd6, 0x26, 0x1c, 0x00, 0x00, +} From 6500ba48a7d63377807de53e0e65758fa3e9e557 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 24 Apr 2022 18:23:44 +0800 Subject: [PATCH 34/57] work_moments --- internal/rpc/office/office.go | 4 ++-- pkg/common/db/mongoModel.go | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index e0b54dddf..dffaa872a 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -485,6 +485,7 @@ func (s *officeServer) GetWorkMomentByID(_ context.Context, req *pbOffice.GetWor func (s *officeServer) GetUserWorkMoments(_ context.Context, req *pbOffice.GetUserWorkMomentsReq) (resp *pbOffice.GetUserWorkMomentsResp, err error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp = &pbOffice.GetUserWorkMomentsResp{CommonResp: &pbOffice.CommonResp{}, WorkMoments: []*pbOffice.WorkMoment{}} + resp.Pagination = &pbCommon.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber} var workMoments []db.WorkMoment if req.UserID == req.OpUserID { workMoments, err = db.DB.GetUserSelfWorkMoments(req.UserID, req.Pagination.ShowNumber, req.Pagination.PageNumber) @@ -499,7 +500,6 @@ func (s *officeServer) GetUserWorkMoments(_ context.Context, req *pbOffice.GetUs if err := utils.CopyStructFields(&resp.WorkMoments, workMoments); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - resp.Pagination = &pbCommon.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber} log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } @@ -507,6 +507,7 @@ func (s *officeServer) GetUserWorkMoments(_ context.Context, req *pbOffice.GetUs func (s *officeServer) GetUserFriendWorkMoments(_ context.Context, req *pbOffice.GetUserFriendWorkMomentsReq) (resp *pbOffice.GetUserFriendWorkMomentsResp, err error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp = &pbOffice.GetUserFriendWorkMomentsResp{CommonResp: &pbOffice.CommonResp{}, WorkMoments: []*pbOffice.WorkMoment{}} + resp.Pagination = &pbCommon.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber} //resp.WorkMoments = make([]*pbOffice.WorkMoment, 0) friendIDList, err := imdb.GetFriendIDListByUserID(req.UserID) if err != nil { @@ -524,7 +525,6 @@ func (s *officeServer) GetUserFriendWorkMoments(_ context.Context, req *pbOffice if err := utils.CopyStructFields(&resp.WorkMoments, workMoments); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - resp.Pagination = &pbCommon.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber} log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 6ff42d558..dbda0f346 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -680,8 +680,8 @@ func (d *DataBases) GetUserWorkMoments(opUserID, userID string, showNumber, page result, err := c.Find(ctx, bson.D{ // 等价条件: select * from {"user_id", userID}, {"$or", bson.A{ - bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {opUserID, bson.D{{"$nin", "permission_user_id_list"}}}}, - bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {opUserID, bson.D{{"$in", "permission_user_id_list"}}}}, + bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {"permission_user_id_list", bson.D{{"$nin", bson.A{userID}}}}}, + bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {"permission_user_id_list", bson.D{{"$in", bson.A{userID}}}}}, bson.D{{"permission", constant.WorkMomentPublic}}, }}, }, findOpts) @@ -700,8 +700,8 @@ func (d *DataBases) GetUserFriendWorkMoments(friendIDList []*string, showNumber, result, err := c.Find(ctx, bson.D{ // 等价条件: select * from t where user_id in friend_id_list and () or () or (); {"user_id", bson.D{{"$in", friendIDList}}}, {"$or", bson.A{ - bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {userID, bson.D{{"$nin", "permission_user_id_list"}}}}, - bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {userID, bson.D{{"$in", "permission_user_id_list"}}}}, + bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {"permission_user_id_list", bson.D{{"$nin", bson.A{userID}}}}}, + bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {"permission_user_id_list", bson.D{{"$in", bson.A{userID}}}}}, bson.D{{"permission", constant.WorkMomentPublic}}, }}, }, findOpts) From 30df45ef2ed323cfcb8f5242d0afe1429ae9fe3b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 24 Apr 2022 18:49:03 +0800 Subject: [PATCH 35/57] work_moments --- pkg/common/db/mongoModel.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index dbda0f346..fe4ec5ab8 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -697,13 +697,17 @@ func (d *DataBases) GetUserFriendWorkMoments(friendIDList []*string, showNumber, c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) var workMomentList []WorkMoment findOpts := options.Find().SetLimit(int64(showNumber)).SetSkip(int64(showNumber) * (int64(pageNumber) - 1)).SetSort(bson.M{"create_time": -1}) - result, err := c.Find(ctx, bson.D{ // 等价条件: select * from t where user_id in friend_id_list and () or () or (); - {"user_id", bson.D{{"$in", friendIDList}}}, + result, err := c.Find(ctx, bson.D{ {"$or", bson.A{ - bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {"permission_user_id_list", bson.D{{"$nin", bson.A{userID}}}}}, - bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {"permission_user_id_list", bson.D{{"$in", bson.A{userID}}}}}, - bson.D{{"permission", constant.WorkMomentPublic}}, - }}, + bson.D{{"user_id", userID}}, //self + bson.D{{"user_id", bson.D{{"$in", friendIDList}}}, + {"$or", bson.A{ + bson.D{{"permission", constant.WorkMomentPermissionCantSee}, {"permission_user_id_list", bson.D{{"$nin", bson.A{userID}}}}}, + bson.D{{"permission", constant.WorkMomentPermissionCanSee}, {"permission_user_id_list", bson.D{{"$in", bson.A{userID}}}}}, + bson.D{{"permission", constant.WorkMomentPublic}}, + }}}, + }, + }, }, findOpts) if err != nil { return workMomentList, err From bccaf163438eb2a766d7a8732024f8ff72c800a1 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 25 Apr 2022 10:07:14 +0800 Subject: [PATCH 36/57] work_moments --- internal/api/office/work_moments.go | 3 +-- pkg/common/db/model.go | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/internal/api/office/work_moments.go b/internal/api/office/work_moments.go index 267bc7e3b..b5960ade7 100644 --- a/internal/api/office/work_moments.go +++ b/internal/api/office/work_moments.go @@ -201,8 +201,7 @@ func GetWorkMomentByID(c *gin.Context) { if err := utils.CopyStructFields(&resp, respPb.CommonResp); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - //resp.Data.WorkMoment = respPb.WorkMoment - resp.Data.WorkMoment = &apiStruct.WorkMoment{} + resp.Data.WorkMoment = &apiStruct.WorkMoment{LikeUserList: []*apiStruct.WorkMomentUser{}, Comments: []*apiStruct.Comment{}, AtUserList: []*apiStruct.WorkMomentUser{}} if err := utils.CopyStructFields(&resp.Data.WorkMoment, respPb.WorkMoment); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 3ffce9ddf..2fe0ed367 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -73,7 +73,7 @@ func init() { cCommentMsgModels := []mongo.IndexModel{ { - Keys: bson.M{"create_time": -1, "user_id": -1}, + Keys: bson.A{bson.D{{"create_time", -1}, {"user_id", -1}}}, }, } result, err := dataBase.Collection(cCommentMsg).Indexes().CreateMany(context.Background(), cCommentMsgModels, opts) From 03c3eea54efd39628a37a3b373d5863e17c87291 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 25 Apr 2022 10:35:20 +0800 Subject: [PATCH 37/57] work_moments --- internal/api/office/work_moments.go | 81 +++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/internal/api/office/work_moments.go b/internal/api/office/work_moments.go index b5960ade7..7cfe54fb2 100644 --- a/internal/api/office/work_moments.go +++ b/internal/api/office/work_moments.go @@ -243,11 +243,48 @@ func GetUserWorkMoments(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserWorkMoments rpc server failed" + err.Error()}) return } + resp.Data.WorkMoments = []*apiStruct.WorkMoment{} if err := utils.CopyStructFields(&resp, respPb.CommonResp); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - if err := utils.CopyStructFields(&resp.Data.WorkMoments, respPb.WorkMoments); err != nil { - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + //if err := utils.CopyStructFields(&resp.Data.WorkMoments, respPb.WorkMoments); err != nil { + // log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + //} + for _, v := range respPb.WorkMoments { + workMoment := apiStruct.WorkMoment{ + WorkMomentID: v.WorkMomentID, + UserID: v.UserID, + Content: v.Content, + FaceURL: v.FaceURL, + UserName: v.UserName, + CreateTime: v.CreateTime, + Comments: make([]*apiStruct.Comment, len(v.Comments)), + LikeUserList: make([]*apiStruct.WorkMomentUser, len(v.LikeUserList)), + AtUserList: make([]*apiStruct.WorkMomentUser, len(v.AtUserList)), + } + for i, comment := range v.Comments { + workMoment.Comments[i] = &apiStruct.Comment{ + UserID: comment.UserID, + UserName: comment.UserName, + ReplyUserID: comment.ReplyUserID, + ReplyUserName: comment.ReplyUserID, + ContentID: comment.ContentID, + Content: comment.Content, + CreateTime: comment.CreateTime, + } + } + for i, likeUser := range v.LikeUserList { + workMoment.LikeUserList[i] = &apiStruct.WorkMomentUser{ + UserID: likeUser.UserID, + UserName: likeUser.UserName, + } + } + for i, atUser := range v.AtUserList { + workMoment.AtUserList[i] = &apiStruct.WorkMomentUser{ + UserID: atUser.UserID, + UserName: atUser.UserName, + } + } } resp.Data.ShowNumber = respPb.Pagination.ShowNumber resp.Data.CurrentPage = respPb.Pagination.CurrentPage @@ -291,8 +328,44 @@ func GetUserFriendWorkMoments(c *gin.Context) { if err := utils.CopyStructFields(&resp, respPb.CommonResp); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - if err := utils.CopyStructFields(&resp.Data.WorkMoments, respPb.WorkMoments); err != nil { - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + //if err := utils.CopyStructFields(&resp.Data.WorkMoments, respPb.WorkMoments); err != nil { + // log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + //} + for _, v := range respPb.WorkMoments { + workMoment := apiStruct.WorkMoment{ + WorkMomentID: v.WorkMomentID, + UserID: v.UserID, + Content: v.Content, + FaceURL: v.FaceURL, + UserName: v.UserName, + CreateTime: v.CreateTime, + Comments: make([]*apiStruct.Comment, len(v.Comments)), + LikeUserList: make([]*apiStruct.WorkMomentUser, len(v.LikeUserList)), + AtUserList: make([]*apiStruct.WorkMomentUser, len(v.AtUserList)), + } + for i, comment := range v.Comments { + workMoment.Comments[i] = &apiStruct.Comment{ + UserID: comment.UserID, + UserName: comment.UserName, + ReplyUserID: comment.ReplyUserID, + ReplyUserName: comment.ReplyUserID, + ContentID: comment.ContentID, + Content: comment.Content, + CreateTime: comment.CreateTime, + } + } + for i, likeUser := range v.LikeUserList { + workMoment.LikeUserList[i] = &apiStruct.WorkMomentUser{ + UserID: likeUser.UserID, + UserName: likeUser.UserName, + } + } + for i, atUser := range v.AtUserList { + workMoment.AtUserList[i] = &apiStruct.WorkMomentUser{ + UserID: atUser.UserID, + UserName: atUser.UserName, + } + } } resp.Data.ShowNumber = respPb.Pagination.ShowNumber resp.Data.CurrentPage = respPb.Pagination.CurrentPage From ac31c612b3920512d51ae44e652a6d95213d249f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 25 Apr 2022 10:40:31 +0800 Subject: [PATCH 38/57] work_moments --- internal/api/office/work_moments.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/api/office/work_moments.go b/internal/api/office/work_moments.go index 7cfe54fb2..4b1f211d5 100644 --- a/internal/api/office/work_moments.go +++ b/internal/api/office/work_moments.go @@ -285,6 +285,7 @@ func GetUserWorkMoments(c *gin.Context) { UserName: atUser.UserName, } } + resp.Data.WorkMoments = append(resp.Data.WorkMoments, &workMoment) } resp.Data.ShowNumber = respPb.Pagination.ShowNumber resp.Data.CurrentPage = respPb.Pagination.CurrentPage @@ -331,6 +332,7 @@ func GetUserFriendWorkMoments(c *gin.Context) { //if err := utils.CopyStructFields(&resp.Data.WorkMoments, respPb.WorkMoments); err != nil { // log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) //} + resp.Data.WorkMoments = []*apiStruct.WorkMoment{} for _, v := range respPb.WorkMoments { workMoment := apiStruct.WorkMoment{ WorkMomentID: v.WorkMomentID, @@ -366,6 +368,7 @@ func GetUserFriendWorkMoments(c *gin.Context) { UserName: atUser.UserName, } } + resp.Data.WorkMoments = append(resp.Data.WorkMoments, &workMoment) } resp.Data.ShowNumber = respPb.Pagination.ShowNumber resp.Data.CurrentPage = respPb.Pagination.CurrentPage From a426c8bb2668ac200d818fd73956cd73fa3a9f96 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 15:45:39 +0800 Subject: [PATCH 39/57] Adjust port --- cmd/Open-IM-SDK-Core | 2 +- cmd/open_im_demo/main.go | 2 +- config/config.yaml | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 539290887..b0897aa3a 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 539290887aff41515b291b7ecf174af25887f870 +Subproject commit b0897aa3abe719729c2ce099404f08806917bfe3 diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index af7809547..4cfd4b552 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -23,7 +23,7 @@ func main() { r := gin.Default() r.Use(utils.CorsHandler()) - authRouterGroup := r.Group("/auth") + authRouterGroup := r.Group("/demo") { authRouterGroup.POST("/code", register.SendVerificationCode) authRouterGroup.POST("/verify", register.Verify) diff --git a/config/config.yaml b/config/config.yaml index aab4e1737..f68ec633d 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -76,11 +76,11 @@ endpoints: rpc_office: openim_rpc_office api: - openImApiPort: [ 10000 ] #api服务端口,默认即可,需要开放此端口或做nginx转发 + openImApiPort: [ 10002 ] #api服务端口,默认即可,需要开放此端口或做nginx转发 cmsapi: - openImCmsApiPort: [ 8000 ] #管理后台api服务端口,默认即可,需要开放此端口或做nginx转发 + openImCmsApiPort: [ 10006 ] #管理后台api服务端口,默认即可,需要开放此端口或做nginx转发 sdk: - openImSdkWsPort: [ 30000 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 + openImSdkWsPort: [ 10003 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 #对象存储服务,以下配置二选一,目前支持两种,腾讯云和minio,二者配置好其中一种即可(如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器) credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改 tencent: @@ -92,8 +92,8 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化InitSDK,中 object_storage参数为minio bucket: openim location: us-east-1 - endpoint: http://127.0.0.1:9000 #minio外网ip 这个ip是给客户端访问的 - endpointInner: http://127.0.0.1:9000 #minio内网地址 如果im server 可以通过内网访问到 minio就可以填写 + endpoint: http://127.0.0.1:10005 #minio外网ip 这个ip是给客户端访问的 + endpointInner: http://127.0.0.1:10005 #minio内网地址 如果im server 可以通过内网访问到 minio就可以填写 endpointInnerEnable: true #是否启用minio内网地址 启用可以让桶初始化,IM server连接minio走内网地址访问 accessKeyID: user12345 secretAccessKey: key12345 @@ -166,7 +166,7 @@ modulename: #日志文件按模块命名,默认即可 pushName: push longconnsvr: - openImWsPort: [ 17778 ] # ws服务端口,默认即可,要开放此端口或做nginx转发 + openImWsPort: [ 10001 ] # ws服务端口,默认即可,要开放此端口或做nginx转发 websocketMaxConnNum: 10000 websocketMaxMsgLen: 4096 websocketTimeOut: 10 @@ -634,7 +634,7 @@ notification: demoswitch: true demo: #demo对外服务端口,默认即可,需要开放此端口或做nginx转发 - openImDemoPort: [ 42233 ] + openImDemoPort: [ 10004 ] alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项,必须修改 accessKeyId: LTAI5tJPkn4HuuePdiLdGqe7 accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV From 9d691f24520245d0e3d0724b447a44d17a6ff5a4 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 16:21:48 +0800 Subject: [PATCH 40/57] Adjust port --- config/config.yaml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index f68ec633d..285dd0434 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -111,19 +111,19 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 rpcport: #rpc服务端口 默认即可 - openImUserPort: [ 10100 ] - openImFriendPort: [ 10200 ] - openImMessagePort: [ 10300 ] - openImMessageGatewayPort: [ 10400 ] - openImGroupPort: [ 10500 ] - openImAuthPort: [ 10600 ] - openImPushPort: [ 10700 ] - openImStatisticsPort: [ 10800 ] - openImMessageCmsPort: [ 10900 ] - openImAdminCmsPort: [ 11000 ] - openImOfficePort: [ 11100 ] - openImOrganizationPort: [ 11200 ] - openImConversationPort: [ 11400 ] + openImUserPort: [ 10110 ] + openImFriendPort: [ 10120 ] + openImMessagePort: [ 10130 ] + openImMessageGatewayPort: [ 10140 ] + openImGroupPort: [ 10150 ] + openImAuthPort: [ 10160 ] + openImPushPort: [ 10170 ] + openImStatisticsPort: [ 10180 ] + openImMessageCmsPort: [ 10190 ] + openImAdminCmsPort: [ 10200 ] + openImOfficePort: [ 10210 ] + openImOrganizationPort: [ 10220 ] + openImConversationPort: [ 10230 ] c2c: callbackBeforeSendMsg: switch: false From e2905d01accdc30280e63209611900bcbf5d5a9e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 16:47:51 +0800 Subject: [PATCH 41/57] Adjust port --- internal/demo/register/login.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index e6de926dc..1c9d65fce 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -46,7 +46,7 @@ func Login(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"errCode": constant.PasswordErr, "errMsg": "password err"}) return } - url := fmt.Sprintf("http://%s:10000/auth/user_token", utils.ServerIP) + url := fmt.Sprintf("http://%s:%d/auth/user_token", utils.ServerIP, config.Config.Api.GinPort) openIMGetUserToken := api.UserTokenReq{} openIMGetUserToken.OperationID = params.OperationID openIMGetUserToken.Platform = params.Platform From f754e951f7974a085233cfb5a951ec4bc67d42df Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 16:55:56 +0800 Subject: [PATCH 42/57] Adjust port --- internal/demo/register/login.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index 1c9d65fce..3e20e3d4a 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -46,7 +46,7 @@ func Login(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"errCode": constant.PasswordErr, "errMsg": "password err"}) return } - url := fmt.Sprintf("http://%s:%d/auth/user_token", utils.ServerIP, config.Config.Api.GinPort) + url := fmt.Sprintf("http://%s:%s/auth/user_token", utils.ServerIP, config.Config.Api.GinPort[0]) openIMGetUserToken := api.UserTokenReq{} openIMGetUserToken.OperationID = params.OperationID openIMGetUserToken.Platform = params.Platform From 7659cca8ba34452012735b598a8c2fbe7e68fca8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 16:58:05 +0800 Subject: [PATCH 43/57] Adjust port --- internal/demo/register/login.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index 3e20e3d4a..24ebc3e80 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -46,7 +46,7 @@ func Login(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"errCode": constant.PasswordErr, "errMsg": "password err"}) return } - url := fmt.Sprintf("http://%s:%s/auth/user_token", utils.ServerIP, config.Config.Api.GinPort[0]) + url := fmt.Sprintf("http://%s:%d/auth/user_token", utils.ServerIP, config.Config.Api.GinPort[0]) openIMGetUserToken := api.UserTokenReq{} openIMGetUserToken.OperationID = params.OperationID openIMGetUserToken.Platform = params.Platform From a89bb33015d4dda9db40320b28b7a10d9b40bff6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 16:58:35 +0800 Subject: [PATCH 44/57] Adjust port --- internal/demo/register/login.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index 24ebc3e80..b5d587844 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -42,7 +42,7 @@ func Login(c *gin.Context) { return } if r.Password != params.Password { - log.NewError(params.OperationID, "password err", params.Password, account, r.Password, r.Account) + log.NewError(params.OperationID, "password err", params.Password, account, r.Password, r.Account) c.JSON(http.StatusOK, gin.H{"errCode": constant.PasswordErr, "errMsg": "password err"}) return } From 51ee2df755460569541c536177b5aabaeea6da48 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Apr 2022 17:13:54 +0800 Subject: [PATCH 45/57] flag parse update --- cmd/open_im_cms_api/main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/open_im_cms_api/main.go b/cmd/open_im_cms_api/main.go index 20e6380db..d4889dc9d 100644 --- a/cmd/open_im_cms_api/main.go +++ b/cmd/open_im_cms_api/main.go @@ -15,6 +15,7 @@ func main() { router := cms_api.NewGinRouter() router.Use(utils.CorsHandler()) ginPort := flag.Int("port", 8000, "get ginServerPort from cmd,default 8000 as port") + flag.Parse() fmt.Println("start cms api server, port: ", ginPort) router.Run(":" + strconv.Itoa(*ginPort)) } From d12d03fd5ee826c0c9540f71fe60d1ed927bdc3a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 17:28:43 +0800 Subject: [PATCH 46/57] Adjust port --- script/check_all.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/script/check_all.sh b/script/check_all.sh index 2ecd800b0..79a233bde 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -4,8 +4,11 @@ source ./style_info.cfg source ./path_info.cfg source ./function.sh service_port_name=( - openImCmsApiPort + openImWsPort openImApiPort + openImSdkWsPort + openImDemoPort + openImCmsApiPort openImUserPort openImFriendPort openImMessagePort @@ -13,13 +16,10 @@ service_port_name=( openImGroupPort openImAuthPort openImPushPort - openImWsPort - openImSdkWsPort - openImDemoPort - openImAdminCmsPort - openImMessageCmsPort openImStatisticsPort + openImMessageCmsPort openImOfficePort + openImAdminCmsPort openImOrganizationPort openImConversationPort ) From fdc462d0714404746e0980f5dfd1c3ca1cc50cd8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 17:30:13 +0800 Subject: [PATCH 47/57] Adjust port --- script/check_all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/check_all.sh b/script/check_all.sh index 79a233bde..60abfad69 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -18,8 +18,8 @@ service_port_name=( openImPushPort openImStatisticsPort openImMessageCmsPort - openImOfficePort openImAdminCmsPort + openImOfficePort openImOrganizationPort openImConversationPort ) From b3077fc15de76586b1d003214bf98fb2d5dbdd24 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Apr 2022 19:14:51 +0800 Subject: [PATCH 48/57] conversation update --- pkg/common/db/mysql_model/im_mysql_model/conversation_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go index 2c252222d..ae90907bf 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go @@ -140,6 +140,6 @@ func UpdateColumnsConversations(ownerUserIDList []string, conversationID string, return err } dbConn.LogMode(false) - return dbConn.Model(&db.Conversation{}).Where("owner_user_id IN ? and conversation_id=?", ownerUserIDList, conversationID).Updates(args).Error + return dbConn.Debug().Model(&db.Conversation{}).Where("owner_user_id IN ? and conversation_id=?", ownerUserIDList, conversationID).Updates(args).Error } From eebe9cbd5faa621cc5ebaff01f503089ae10b66a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Apr 2022 19:41:17 +0800 Subject: [PATCH 49/57] conversation update --- pkg/common/db/mysql_model/im_mysql_model/conversation_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go index ae90907bf..6dc010784 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go @@ -140,6 +140,6 @@ func UpdateColumnsConversations(ownerUserIDList []string, conversationID string, return err } dbConn.LogMode(false) - return dbConn.Debug().Model(&db.Conversation{}).Where("owner_user_id IN ? and conversation_id=?", ownerUserIDList, conversationID).Updates(args).Error + return dbConn.Debug().Model(&db.Conversation{}).Where("owner_user_id IN (?) and conversation_id=?", ownerUserIDList, conversationID).Updates(args).Error } From 9a9f26c435405fe419e6170ad4b2054a7f81e906 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Apr 2022 19:56:46 +0800 Subject: [PATCH 50/57] conversation update --- internal/rpc/conversation/conversaion.go | 2 +- .../db/mysql_model/im_mysql_model/conversation_model.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index aec03fd26..7012e0924 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -47,7 +47,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo if err := utils.CopyStructFields(&conversation, req.Conversation); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", *req.Conversation, err.Error()) } - haveUserID, _ := imdb.GetExistConversationUserIDList(req.Conversation.ConversationID) + haveUserID, _ := imdb.GetExistConversationUserIDList(req.UserIDList, req.Conversation.ConversationID) switch req.FieldType { case constant.FieldRecvMsgOpt: for _, v := range req.UserIDList { diff --git a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go index 6dc010784..0af86c57d 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go @@ -93,13 +93,13 @@ func GetMultipleUserConversationByConversationID(ownerUserIDList []string, conve err = dbConn.Model(&db.Conversation{}).Where("owner_user_id IN ? and conversation_id=?", ownerUserIDList, conversationID).Find(&conversations).Error return conversations, err } -func GetExistConversationUserIDList(conversationID string) ([]string, error) { +func GetExistConversationUserIDList(ownerUserIDList []string, conversationID string) ([]string, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var resultArr []string - err = dbConn.Table("conversations").Where(" conversation_id=?", conversationID).Pluck("owner_user_id", &resultArr).Error + err = dbConn.Table("conversations").Where(" owner_user_id IN (?) and conversation_id=?", ownerUserIDList, conversationID).Pluck("owner_user_id", &resultArr).Error if err != nil { return nil, err } From 80301f2cb2d65f9adc773f15f56999702efba3e1 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 25 Apr 2022 19:57:35 +0800 Subject: [PATCH 51/57] alter router --- internal/cms_api/router.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 941cc5bf5..a0221d536 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -15,7 +15,7 @@ import ( func NewGinRouter() *gin.Engine { gin.SetMode(gin.ReleaseMode) baseRouter := gin.Default() - router := baseRouter.Group("/api") + router := baseRouter.Group("/cms") router.Use(middleware.CorsHandler()) adminRouterGroup := router.Group("/admin") { From a03f89fb68e6313aaeed4432e5c11ce3b0ba85ce Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 25 Apr 2022 20:05:21 +0800 Subject: [PATCH 52/57] cache rpc --- cmd/rpc/open_im_rpc/Makefile | 23 +++++ cmd/rpc/open_im_rpc/main.go | 15 ++++ config/config.yaml | 1 + internal/api/third/minio_init.go | 11 +-- internal/api/user/user.go | 144 ++++++++++++++++++++++++++----- internal/rpc/cache/cache.go | 103 ++++++++++++++++++++++ internal/rpc/office/office.go | 5 +- pkg/common/config/config.go | 1 + pkg/common/db/redisModel.go | 23 +++++ pkg/proto/cache/cache.proto | 44 ++++++++++ 10 files changed, 340 insertions(+), 30 deletions(-) create mode 100644 cmd/rpc/open_im_rpc/Makefile create mode 100644 cmd/rpc/open_im_rpc/main.go create mode 100644 internal/rpc/cache/cache.go create mode 100644 pkg/proto/cache/cache.proto diff --git a/cmd/rpc/open_im_rpc/Makefile b/cmd/rpc/open_im_rpc/Makefile new file mode 100644 index 000000000..b86230c64 --- /dev/null +++ b/cmd/rpc/open_im_rpc/Makefile @@ -0,0 +1,23 @@ +.PHONY: all build run gotool install clean help + +BINARY_NAME=open_im_office +BIN_DIR=../../../bin/ + +all: gotool build + +build: + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" + +run: + @go run ./ + +gotool: + go fmt ./ + go vet ./ + +install: + make build + mv ${BINARY_NAME} ${BIN_DIR} + +clean: + @if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi diff --git a/cmd/rpc/open_im_rpc/main.go b/cmd/rpc/open_im_rpc/main.go new file mode 100644 index 000000000..efe887c1e --- /dev/null +++ b/cmd/rpc/open_im_rpc/main.go @@ -0,0 +1,15 @@ +package main + +import ( + rpc "Open_IM/internal/rpc/cache" + "flag" + "fmt" +) + +func main() { + rpcPort := flag.Int("port", 11500, "rpc listening port") + flag.Parse() + fmt.Println("start office rpc server, port: ", *rpcPort) + rpcServer := rpc.NewOfficeServer(*rpcPort) + rpcServer.Run() +} diff --git a/config/config.yaml b/config/config.yaml index 285dd0434..4bb653511 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -148,6 +148,7 @@ rpcregistername: #rpc注册服务名,默认即可 openImOfficeName: Office openImOrganizationName: Organization openImConversationName: Conversation + openImCacheName: Cache log: storageLocation: ../logs/ diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index b3d66b934..2c00965bf 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -7,6 +7,7 @@ import ( "context" "github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7/pkg/credentials" + "github.com/minio/minio-go/v7/pkg/policy" url2 "net/url" ) @@ -58,10 +59,10 @@ func MinioInit() { } } // 自动化桶public的代码 - //err = minioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policy.BucketPolicyReadWrite) - //if err != nil { - // log.NewError("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) - // return - //} + err = minioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policy.BucketPolicyReadWrite) + if err != nil { + log.NewDebug("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) + return + } log.NewInfo(operationID, utils.GetSelfFuncName(), "minio create and set policy success") } diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 4fbbcf5ef..e56689897 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -8,6 +8,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" + "Open_IM/pkg/proto/cache" pbRelay "Open_IM/pkg/proto/relay" open_im_sdk "Open_IM/pkg/proto/sdk_ws" rpc "Open_IM/pkg/proto/user" @@ -25,34 +26,100 @@ func GetUsersInfo(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) return } - req := &rpc.GetUserInfoReq{} - utils.CopyStructFields(req, ¶ms) + getUserInfoReq := &rpc.GetUserInfoReq{} + getUserInfoReq.OperationID = params.OperationID var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + ok, getUserInfoReq.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), getUserInfoReq.OperationID) if !ok { - log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + log.NewError(getUserInfoReq.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - log.NewInfo(params.OperationID, "GetUserInfo args ", req.String()) - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := rpc.NewUserClient(etcdConn) - RpcResp, err := client.GetUserInfo(context.Background(), req) + log.NewInfo(params.OperationID, "GetUserInfo args ", getUserInfoReq.String()) + reqCacheGetUserInfo := &cache.GetUserInfoReq{} + utils.CopyStructFields(reqCacheGetUserInfo, ¶ms) + var userInfoList []*open_im_sdk.UserInfo + var publicUserInfoList []*open_im_sdk.PublicUserInfo + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName) + cacheClient := cache.NewCacheClient(etcdConn) + cacheResp, err := cacheClient.GetUserInfo(context.Background(), reqCacheGetUserInfo) if err != nil { - log.NewError(req.OperationID, "GetUserInfo failed ", err.Error(), req.String()) + log.NewError(getUserInfoReq.OperationID, utils.GetSelfFuncName(), "GetUserInfo failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed: " + err.Error()}) + return + } + if cacheResp.CommonResp.ErrCode != 0 { + log.NewError(getUserInfoReq.OperationID, utils.GetSelfFuncName(), "GetUserInfo failed", cacheResp.CommonResp) + resp := api.GetUsersInfoResp{CommResp: api.CommResp{ErrCode: cacheResp.CommonResp.ErrCode, ErrMsg: cacheResp.CommonResp.ErrMsg}} + resp.Data = []map[string]interface{}{} + log.NewInfo(getUserInfoReq.OperationID, "GetUserInfo api return ", resp) + c.JSON(http.StatusOK, resp) + return + } + log.NewInfo(getUserInfoReq.OperationID, utils.GetSelfFuncName(), "cacheResp:", cacheResp.String()) + userInfoList = cacheResp.UserInfoList + var needCacheUserIDList []string + for _, userID := range reqCacheGetUserInfo.UserIDList { + isGetUserInfoFromCache := false + for _, cacheUser := range userInfoList { + if cacheUser.UserID == userID { + isGetUserInfoFromCache = true + } + } + if !isGetUserInfoFromCache { + needCacheUserIDList = append(needCacheUserIDList, userID) + } + } + if len(needCacheUserIDList) == 0 { + log.NewInfo(getUserInfoReq.OperationID, utils.GetSelfFuncName(), "get all userInfo from cache success") + for _, v := range userInfoList { + publicUserInfoList = append(publicUserInfoList, + &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, Gender: v.Gender, Ex: v.Ex}) + } + resp := api.GetUsersInfoResp{CommResp: api.CommResp{ErrCode: cacheResp.CommonResp.ErrCode, ErrMsg: cacheResp.CommonResp.ErrMsg}, UserInfoList: publicUserInfoList} + resp.Data = jsonData.JsonDataList(resp.UserInfoList) + log.NewInfo(getUserInfoReq.OperationID, "GetUserInfo api return ", resp) + c.JSON(http.StatusOK, resp) + return + } + + log.NewDebug(getUserInfoReq.OperationID, utils.GetSelfFuncName(), "need cache user list", needCacheUserIDList) + getUserInfoReq.UserIDList = needCacheUserIDList + etcdConn = getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := rpc.NewUserClient(etcdConn) + rpcResp, err := client.GetUserInfo(context.Background(), getUserInfoReq) + if err != nil { + log.NewError(getUserInfoReq.OperationID, "GetUserInfo failed ", err.Error(), getUserInfoReq.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed" + err.Error()}) + return + } + if rpcResp.CommonResp.ErrCode != 0 { + log.NewError(getUserInfoReq.OperationID, utils.GetSelfFuncName(), "GetUserInfo failed", cacheResp.CommonResp) + resp := api.GetUsersInfoResp{CommResp: api.CommResp{ErrCode: cacheResp.CommonResp.ErrCode, ErrMsg: cacheResp.CommonResp.ErrMsg}} + resp.Data = []map[string]interface{}{} + log.NewInfo(getUserInfoReq.OperationID, "GetUserInfo api return ", resp) + c.JSON(http.StatusOK, resp) + return + } + userInfoList = append(userInfoList, rpcResp.UserInfoList...) + cacheUpdateUserInfoReq := &cache.UpdateUserInfoReq{ + UserInfoList: rpcResp.UserInfoList, + OperationID: getUserInfoReq.OperationID, + } + _, err = cacheClient.UpdateUserInfo(context.Background(), cacheUpdateUserInfoReq) + if err != nil { + log.NewError(getUserInfoReq.OperationID, "GetUserInfo failed ", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - var publicUserInfoList []*open_im_sdk.PublicUserInfo - for _, v := range RpcResp.UserInfoList { + userInfoList = rpcResp.UserInfoList + for _, v := range userInfoList { publicUserInfoList = append(publicUserInfoList, &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, Gender: v.Gender, Ex: v.Ex}) } - - resp := api.GetUsersInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfoList: publicUserInfoList} + resp := api.GetUsersInfoResp{CommResp: api.CommResp{ErrCode: rpcResp.CommonResp.ErrCode, ErrMsg: rpcResp.CommonResp.ErrMsg}, UserInfoList: publicUserInfoList} resp.Data = jsonData.JsonDataList(resp.UserInfoList) - log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) + log.NewInfo(getUserInfoReq.OperationID, "GetUserInfo api return ", resp) c.JSON(http.StatusOK, resp) } @@ -75,18 +142,34 @@ func UpdateUserInfo(c *gin.Context) { return } log.NewInfo(params.OperationID, "UpdateUserInfo args ", req.String()) - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := rpc.NewUserClient(etcdConn) - RpcResp, err := client.UpdateUserInfo(context.Background(), req) + etcdConnUser := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := rpc.NewUserClient(etcdConnUser) + rpcResp, err := client.UpdateUserInfo(context.Background(), req) if err != nil { log.NewError(req.OperationID, "UpdateUserInfo failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - resp := api.UpdateUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - log.NewInfo(req.OperationID, "UpdateUserInfo api return ", resp) - c.JSON(http.StatusOK, resp) + if rpcResp.CommonResp.ErrCode != 0 { + log.NewError(req.OperationID, utils.GetSelfFuncName(), rpcResp.CommonResp.String()) + resp := api.UpdateUserInfoResp{CommResp: api.CommResp{ErrCode: rpcResp.CommonResp.ErrCode, ErrMsg: rpcResp.CommonResp.ErrMsg}} + c.JSON(http.StatusOK, resp) + return + } else { + updateUserInfoReq := &cache.UpdateUserInfoReq{UserInfoList: []*open_im_sdk.UserInfo{req.UserInfo}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), updateUserInfoReq.String()) + etcdConnCache := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName) + cacheClient := cache.NewCacheClient(etcdConnCache) + cacheResp, err := cacheClient.UpdateUserInfo(context.Background(), updateUserInfoReq) + if err != nil { + log.NewError(req.OperationID, "UpdateUserInfo cache failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed: " + err.Error()}) + return + } + resp := api.UpdateUserInfoResp{CommResp: api.CommResp{ErrCode: cacheResp.CommonResp.ErrCode, ErrMsg: cacheResp.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, "UpdateUserInfo api return ", resp) + c.JSON(http.StatusOK, resp) + } } func GetSelfUserInfo(c *gin.Context) { @@ -118,6 +201,22 @@ func GetSelfUserInfo(c *gin.Context) { return } if len(RpcResp.UserInfoList) == 1 { + updateUserInfoReq := &cache.UpdateUserInfoReq{UserInfoList: []*open_im_sdk.UserInfo{RpcResp.UserInfoList[0]}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), updateUserInfoReq.String()) + etcdConnCache := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName) + cacheClient := cache.NewCacheClient(etcdConnCache) + cacheResp, err := cacheClient.UpdateUserInfo(context.Background(), updateUserInfoReq) + if err != nil { + log.NewError(req.OperationID, "UpdateUserInfo cache failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed: " + err.Error()}) + return + } + if cacheResp.CommonResp.ErrCode != 0 { + log.NewError(req.OperationID, utils.GetSelfFuncName(), cacheResp.CommonResp.String()) + resp := api.UpdateUserInfoResp{CommResp: api.CommResp{ErrCode: cacheResp.CommonResp.ErrCode, ErrMsg: cacheResp.CommonResp.ErrMsg}} + c.JSON(http.StatusOK, resp) + return + } resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfo: RpcResp.UserInfoList[0]} resp.Data = jsonData.JsonDataOne(resp.UserInfo) log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) @@ -127,7 +226,6 @@ func GetSelfUserInfo(c *gin.Context) { log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) c.JSON(http.StatusOK, resp) } - } func GetUsersOnlineStatus(c *gin.Context) { diff --git a/internal/rpc/cache/cache.go b/internal/rpc/cache/cache.go new file mode 100644 index 000000000..e172ed723 --- /dev/null +++ b/internal/rpc/cache/cache.go @@ -0,0 +1,103 @@ +package cache + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbCache "Open_IM/pkg/proto/cache" + commonPb "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "context" + "google.golang.org/grpc" + "net" + "strconv" + "strings" +) + +type cacheServer struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func NewOfficeServer(port int) *cacheServer { + log.NewPrivateLog(constant.LogFileName) + return &cacheServer{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImOfficeName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} + +func (s *cacheServer) Run() { + log.NewInfo("0", "cacheServer rpc start ") + ip := utils.ServerIP + registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) + //listener network + listener, err := net.Listen("tcp", registerAddress) + if err != nil { + log.NewError("0", "Listen failed ", err.Error(), registerAddress) + return + } + log.NewInfo("0", "listen network success, ", registerAddress, listener) + defer listener.Close() + //grpc server + srv := grpc.NewServer() + defer srv.GracefulStop() + pbCache.RegisterCacheServer(srv, s) + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) + if err != nil { + log.NewError("0", "RegisterEtcd failed ", err.Error()) + return + } + err = srv.Serve(listener) + if err != nil { + log.NewError("0", "Serve failed ", err.Error()) + return + } + log.NewInfo("0", "message cms rpc success") +} + +func (s *cacheServer) GetUserInfo(_ context.Context, req *pbCache.GetUserInfoReq) (resp *pbCache.GetUserInfoResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp = &pbCache.GetUserInfoResp{ + UserInfoList: []*commonPb.UserInfo{}, + CommonResp: &pbCache.CommonResp{}, + } + for _, userID := range req.UserIDList { + userInfo, err := db.DB.GetUserInfo(userID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "get userInfo from cache failed", err.Error()) + continue + } + resp.UserInfoList = append(resp.UserInfoList, userInfo) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + return resp, nil +} + +func (s *cacheServer) UpdateUserInfo(_ context.Context, req *pbCache.UpdateUserInfoReq) (resp *pbCache.UpdateUserInfoResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp = &pbCache.UpdateUserInfoResp{ + CommonResp: &pbCache.CommonResp{}, + } + for _, userInfo := range req.UserInfoList { + if err := db.DB.SetUserInfo(userInfo); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "set userInfo to cache failed", err.Error()) + return resp, nil + } + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + return resp, nil +} + +func (s *cacheServer) UpdateAllUserToCache(_ context.Context, req *pbCache.UpdateAllUserToCacheReq) (resp *pbCache.UpdateAllUserToCacheResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp = &pbCache.UpdateAllUserToCacheResp{CommonResp: &pbCache.CommonResp{}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + return resp, nil +} diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index dffaa872a..3fd9fb6fe 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -508,14 +508,15 @@ func (s *officeServer) GetUserFriendWorkMoments(_ context.Context, req *pbOffice log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp = &pbOffice.GetUserFriendWorkMomentsResp{CommonResp: &pbOffice.CommonResp{}, WorkMoments: []*pbOffice.WorkMoment{}} resp.Pagination = &pbCommon.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber} - //resp.WorkMoments = make([]*pbOffice.WorkMoment, 0) friendIDList, err := imdb.GetFriendIDListByUserID(req.UserID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetFriendIDListByUserID", err.Error()) resp.CommonResp = &pbOffice.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "friendIDList: ", friendIDList) + for _, friendID := range friendIDList { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), *friendID) + } workMoments, err := db.DB.GetUserFriendWorkMoments(friendIDList, req.Pagination.ShowNumber, req.Pagination.PageNumber, req.UserID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserFriendWorkMoments", err.Error()) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 49e0e0849..bd4998335 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -119,6 +119,7 @@ type config struct { OpenImOfficeName string `yaml:"openImOfficeName"` OpenImOrganizationName string `yaml:"openImOrganizationName"` OpenImConversationName string `yaml:"openImConversationName"` + OpenImCacheName string `yaml:"openImCacheName"` } Etcd struct { EtcdSchema string `yaml:"etcdSchema"` diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 2faa9a6d8..9b32b18d7 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -3,6 +3,8 @@ package db import ( "Open_IM/pkg/common/constant" log2 "Open_IM/pkg/common/log" + pbCommon "Open_IM/pkg/proto/sdk_ws" + "encoding/json" "github.com/garyburd/redigo/redis" ) @@ -15,6 +17,7 @@ const ( uidPidToken = "UID_PID_TOKEN_STATUS:" conversationReceiveMessageOpt = "CON_RECV_MSG_OPT:" GetuiToken = "GETUI" + UserInfoCache = "USER_INFO_CACHE:" ) func (d *DataBases) Exec(cmd string, key interface{}, args ...interface{}) (interface{}, error) { @@ -155,3 +158,23 @@ func (d *DataBases) GetGetuiToken() (string, error) { result, err := redis.String(d.Exec("GET", GetuiToken)) return result, err } + +func (d *DataBases) SetUserInfo(userInfo *pbCommon.UserInfo) error { + b, _ := json.Marshal(&userInfo) + m := map[string]interface{}{} + if err := json.Unmarshal(b, &m); err != nil { + return err + } + _, err := d.Exec("hmset", UserInfoCache+userInfo.UserID, redis.Args{}.Add().AddFlat(m)...) + return err +} + +func (d *DataBases) GetUserInfo(userID string) (*pbCommon.UserInfo, error) { + result, err := redis.String(d.Exec("HGETALL", UserInfoCache+userID)) + if err != nil { + return nil, err + } + userInfo := &pbCommon.UserInfo{} + err = json.Unmarshal([]byte(result), userInfo) + return userInfo, err +} diff --git a/pkg/proto/cache/cache.proto b/pkg/proto/cache/cache.proto new file mode 100644 index 000000000..cecfabd3c --- /dev/null +++ b/pkg/proto/cache/cache.proto @@ -0,0 +1,44 @@ +syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; +option go_package = "./cache;cache"; +package cache; + +message CommonResp{ + int32 errCode = 1; + string errMsg = 2; +} + +message GetUserInfoReq{ + repeated string userIDList = 1; + string operationID = 3; +} + +message GetUserInfoResp{ + CommonResp commonResp = 1; + repeated server_api_params.UserInfo UserInfoList = 2; +} + + +message UpdateUserInfoReq{ + repeated server_api_params.UserInfo UserInfoList = 1; + string operationID = 2; +} + +message UpdateUserInfoResp{ + CommonResp commonResp = 1; +} + +message UpdateAllUserToCacheReq{ + string operationID = 1; +} + +message UpdateAllUserToCacheResp{ + CommonResp commonResp = 1; +} + + +service cache{ + rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); + rpc UpdateUserInfo(UpdateUserInfoReq) returns(UpdateUserInfoResp); + rpc UpdateAllUserToCache(UpdateAllUserToCacheReq) returns(UpdateAllUserToCacheResp); +} From 9f9ebd838ac928da422895b07219f7bc1b111950 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 25 Apr 2022 20:16:43 +0800 Subject: [PATCH 53/57] cache rpc --- pkg/proto/cache/cache.pb.go | 501 ++++++++++++++++++++++++++++++++++++ 1 file changed, 501 insertions(+) create mode 100644 pkg/proto/cache/cache.pb.go diff --git a/pkg/proto/cache/cache.pb.go b/pkg/proto/cache/cache.pb.go new file mode 100644 index 000000000..649784738 --- /dev/null +++ b/pkg/proto/cache/cache.pb.go @@ -0,0 +1,501 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: cache/cache.proto + +package cache // import "./cache" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import sdk_ws "Open_IM/pkg/proto/sdk_ws" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type CommonResp 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:"-"` +} + +func (m *CommonResp) Reset() { *m = CommonResp{} } +func (m *CommonResp) String() string { return proto.CompactTextString(m) } +func (*CommonResp) ProtoMessage() {} +func (*CommonResp) Descriptor() ([]byte, []int) { + return fileDescriptor_cache_613af94c3da056d4, []int{0} +} +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) +} +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) +} +func (dst *CommonResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonResp.Merge(dst, src) +} +func (m *CommonResp) XXX_Size() int { + return xxx_messageInfo_CommonResp.Size(m) +} +func (m *CommonResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommonResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *CommonResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +type GetUserInfoReq struct { + UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} } +func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) } +func (*GetUserInfoReq) ProtoMessage() {} +func (*GetUserInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_cache_613af94c3da056d4, []int{1} +} +func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) +} +func (m *GetUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserInfoReq.Marshal(b, m, deterministic) +} +func (dst *GetUserInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserInfoReq.Merge(dst, src) +} +func (m *GetUserInfoReq) XXX_Size() int { + return xxx_messageInfo_GetUserInfoReq.Size(m) +} +func (m *GetUserInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserInfoReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserInfoReq proto.InternalMessageInfo + +func (m *GetUserInfoReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList + } + return nil +} + +func (m *GetUserInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUserInfoResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,2,rep,name=UserInfoList" json:"UserInfoList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} } +func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) } +func (*GetUserInfoResp) ProtoMessage() {} +func (*GetUserInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_cache_613af94c3da056d4, []int{2} +} +func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) +} +func (m *GetUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserInfoResp.Marshal(b, m, deterministic) +} +func (dst *GetUserInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserInfoResp.Merge(dst, src) +} +func (m *GetUserInfoResp) XXX_Size() int { + return xxx_messageInfo_GetUserInfoResp.Size(m) +} +func (m *GetUserInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserInfoResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserInfoResp proto.InternalMessageInfo + +func (m *GetUserInfoResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { + if m != nil { + return m.UserInfoList + } + return nil +} + +type UpdateUserInfoReq struct { + UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,1,rep,name=UserInfoList" json:"UserInfoList,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} } +func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) } +func (*UpdateUserInfoReq) ProtoMessage() {} +func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_cache_613af94c3da056d4, []int{3} +} +func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) +} +func (m *UpdateUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserInfoReq.Marshal(b, m, deterministic) +} +func (dst *UpdateUserInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserInfoReq.Merge(dst, src) +} +func (m *UpdateUserInfoReq) XXX_Size() int { + return xxx_messageInfo_UpdateUserInfoReq.Size(m) +} +func (m *UpdateUserInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserInfoReq.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserInfoReq proto.InternalMessageInfo + +func (m *UpdateUserInfoReq) GetUserInfoList() []*sdk_ws.UserInfo { + if m != nil { + return m.UserInfoList + } + return nil +} + +func (m *UpdateUserInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type UpdateUserInfoResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateUserInfoResp) Reset() { *m = UpdateUserInfoResp{} } +func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) } +func (*UpdateUserInfoResp) ProtoMessage() {} +func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_cache_613af94c3da056d4, []int{4} +} +func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) +} +func (m *UpdateUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserInfoResp.Marshal(b, m, deterministic) +} +func (dst *UpdateUserInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserInfoResp.Merge(dst, src) +} +func (m *UpdateUserInfoResp) XXX_Size() int { + return xxx_messageInfo_UpdateUserInfoResp.Size(m) +} +func (m *UpdateUserInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserInfoResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserInfoResp proto.InternalMessageInfo + +func (m *UpdateUserInfoResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type UpdateAllUserToCacheReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateAllUserToCacheReq) Reset() { *m = UpdateAllUserToCacheReq{} } +func (m *UpdateAllUserToCacheReq) String() string { return proto.CompactTextString(m) } +func (*UpdateAllUserToCacheReq) ProtoMessage() {} +func (*UpdateAllUserToCacheReq) Descriptor() ([]byte, []int) { + return fileDescriptor_cache_613af94c3da056d4, []int{5} +} +func (m *UpdateAllUserToCacheReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateAllUserToCacheReq.Unmarshal(m, b) +} +func (m *UpdateAllUserToCacheReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateAllUserToCacheReq.Marshal(b, m, deterministic) +} +func (dst *UpdateAllUserToCacheReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateAllUserToCacheReq.Merge(dst, src) +} +func (m *UpdateAllUserToCacheReq) XXX_Size() int { + return xxx_messageInfo_UpdateAllUserToCacheReq.Size(m) +} +func (m *UpdateAllUserToCacheReq) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateAllUserToCacheReq.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateAllUserToCacheReq proto.InternalMessageInfo + +func (m *UpdateAllUserToCacheReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type UpdateAllUserToCacheResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateAllUserToCacheResp) Reset() { *m = UpdateAllUserToCacheResp{} } +func (m *UpdateAllUserToCacheResp) String() string { return proto.CompactTextString(m) } +func (*UpdateAllUserToCacheResp) ProtoMessage() {} +func (*UpdateAllUserToCacheResp) Descriptor() ([]byte, []int) { + return fileDescriptor_cache_613af94c3da056d4, []int{6} +} +func (m *UpdateAllUserToCacheResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateAllUserToCacheResp.Unmarshal(m, b) +} +func (m *UpdateAllUserToCacheResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateAllUserToCacheResp.Marshal(b, m, deterministic) +} +func (dst *UpdateAllUserToCacheResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateAllUserToCacheResp.Merge(dst, src) +} +func (m *UpdateAllUserToCacheResp) XXX_Size() int { + return xxx_messageInfo_UpdateAllUserToCacheResp.Size(m) +} +func (m *UpdateAllUserToCacheResp) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateAllUserToCacheResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateAllUserToCacheResp proto.InternalMessageInfo + +func (m *UpdateAllUserToCacheResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func init() { + proto.RegisterType((*CommonResp)(nil), "cache.CommonResp") + proto.RegisterType((*GetUserInfoReq)(nil), "cache.GetUserInfoReq") + proto.RegisterType((*GetUserInfoResp)(nil), "cache.GetUserInfoResp") + proto.RegisterType((*UpdateUserInfoReq)(nil), "cache.UpdateUserInfoReq") + proto.RegisterType((*UpdateUserInfoResp)(nil), "cache.UpdateUserInfoResp") + proto.RegisterType((*UpdateAllUserToCacheReq)(nil), "cache.UpdateAllUserToCacheReq") + proto.RegisterType((*UpdateAllUserToCacheResp)(nil), "cache.UpdateAllUserToCacheResp") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for Cache service + +type CacheClient interface { + GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) + UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) + UpdateAllUserToCache(ctx context.Context, in *UpdateAllUserToCacheReq, opts ...grpc.CallOption) (*UpdateAllUserToCacheResp, error) +} + +type cacheClient struct { + cc *grpc.ClientConn +} + +func NewCacheClient(cc *grpc.ClientConn) CacheClient { + return &cacheClient{cc} +} + +func (c *cacheClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { + out := new(GetUserInfoResp) + err := grpc.Invoke(ctx, "/cache.cache/GetUserInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cacheClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) { + out := new(UpdateUserInfoResp) + err := grpc.Invoke(ctx, "/cache.cache/UpdateUserInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cacheClient) UpdateAllUserToCache(ctx context.Context, in *UpdateAllUserToCacheReq, opts ...grpc.CallOption) (*UpdateAllUserToCacheResp, error) { + out := new(UpdateAllUserToCacheResp) + err := grpc.Invoke(ctx, "/cache.cache/UpdateAllUserToCache", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Cache service + +type CacheServer interface { + GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) + UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) + UpdateAllUserToCache(context.Context, *UpdateAllUserToCacheReq) (*UpdateAllUserToCacheResp, error) +} + +func RegisterCacheServer(s *grpc.Server, srv CacheServer) { + s.RegisterService(&_Cache_serviceDesc, srv) +} + +func _Cache_GetUserInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CacheServer).GetUserInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cache.cache/GetUserInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CacheServer).GetUserInfo(ctx, req.(*GetUserInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Cache_UpdateUserInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateUserInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CacheServer).UpdateUserInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cache.cache/UpdateUserInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CacheServer).UpdateUserInfo(ctx, req.(*UpdateUserInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Cache_UpdateAllUserToCache_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateAllUserToCacheReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CacheServer).UpdateAllUserToCache(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cache.cache/UpdateAllUserToCache", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CacheServer).UpdateAllUserToCache(ctx, req.(*UpdateAllUserToCacheReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _Cache_serviceDesc = grpc.ServiceDesc{ + ServiceName: "cache.cache", + HandlerType: (*CacheServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetUserInfo", + Handler: _Cache_GetUserInfo_Handler, + }, + { + MethodName: "UpdateUserInfo", + Handler: _Cache_UpdateUserInfo_Handler, + }, + { + MethodName: "UpdateAllUserToCache", + Handler: _Cache_UpdateAllUserToCache_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cache/cache.proto", +} + +func init() { proto.RegisterFile("cache/cache.proto", fileDescriptor_cache_613af94c3da056d4) } + +var fileDescriptor_cache_613af94c3da056d4 = []byte{ + // 383 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x53, 0x5d, 0x4f, 0xe2, 0x40, + 0x14, 0xcd, 0x40, 0x60, 0xc3, 0xed, 0x2e, 0x84, 0xc9, 0x2e, 0x5b, 0x6b, 0x82, 0xb5, 0x4f, 0x7d, + 0x6a, 0x23, 0x3e, 0x62, 0x34, 0x0a, 0x86, 0x90, 0x48, 0x4c, 0x26, 0x12, 0x13, 0x5f, 0x9a, 0x0a, + 0x23, 0x12, 0xa0, 0x33, 0xce, 0x54, 0xf8, 0x05, 0xfe, 0x54, 0xff, 0x87, 0xe9, 0x14, 0xb0, 0x1f, + 0x68, 0x22, 0x2f, 0x93, 0xdc, 0x8f, 0x73, 0xe6, 0x9c, 0x3b, 0x73, 0xa1, 0x3e, 0xf2, 0x47, 0xcf, + 0xd4, 0x55, 0xa7, 0xc3, 0x05, 0x0b, 0x19, 0x2e, 0xa9, 0xc0, 0x38, 0xbe, 0xe5, 0x34, 0xf0, 0xfa, + 0x03, 0x97, 0xcf, 0x26, 0xae, 0xaa, 0xb8, 0x72, 0x3c, 0xf3, 0x56, 0xd2, 0x5d, 0xc9, 0xb8, 0xd3, + 0x3a, 0x07, 0xe8, 0xb0, 0xc5, 0x82, 0x05, 0x84, 0x4a, 0x8e, 0x75, 0xf8, 0x45, 0x85, 0xe8, 0xb0, + 0x31, 0xd5, 0x91, 0x89, 0xec, 0x12, 0xd9, 0x84, 0xb8, 0x01, 0x65, 0x2a, 0xc4, 0x40, 0x4e, 0xf4, + 0x82, 0x89, 0xec, 0x0a, 0x59, 0x47, 0x16, 0x81, 0x6a, 0x8f, 0x86, 0x43, 0x49, 0x45, 0x3f, 0x78, + 0x62, 0x84, 0xbe, 0xe0, 0x26, 0xc0, 0x6b, 0x14, 0x76, 0x6f, 0xa6, 0x32, 0xd4, 0x91, 0x59, 0xb4, + 0x2b, 0x24, 0x91, 0xc1, 0x26, 0x68, 0x8c, 0x53, 0xe1, 0x87, 0x53, 0x16, 0xf4, 0xbb, 0x7a, 0x51, + 0xd1, 0x25, 0x53, 0xd6, 0x1b, 0x82, 0x5a, 0x8a, 0x54, 0x72, 0x7c, 0x02, 0x30, 0xda, 0xea, 0x54, + 0xe2, 0xb4, 0x56, 0xdd, 0x89, 0x3d, 0x7f, 0x1a, 0x20, 0x89, 0x26, 0x7c, 0x01, 0xbf, 0x37, 0x14, + 0x4a, 0x4a, 0xc1, 0x2c, 0xda, 0x5a, 0xeb, 0xd0, 0x91, 0x54, 0x2c, 0xa9, 0xf0, 0x7c, 0x3e, 0xf5, + 0xb8, 0x2f, 0xfc, 0x85, 0x74, 0xb6, 0x37, 0xa5, 0x00, 0xd6, 0x12, 0xea, 0x43, 0x3e, 0xf6, 0x43, + 0x9a, 0xb4, 0x97, 0x65, 0x45, 0x3f, 0x64, 0xcd, 0xfa, 0x2f, 0xe4, 0xfd, 0xf7, 0x00, 0x67, 0xef, + 0xdd, 0x6b, 0x02, 0x56, 0x1b, 0xfe, 0xc7, 0x44, 0x97, 0xf3, 0x79, 0xc4, 0x75, 0xc7, 0x3a, 0x51, + 0x7b, 0x64, 0x23, 0xa3, 0x02, 0xe5, 0x55, 0x0c, 0x40, 0xdf, 0x0d, 0xde, 0x4b, 0x4b, 0xeb, 0x1d, + 0x41, 0xfc, 0x2b, 0xf1, 0x19, 0x68, 0x89, 0xd7, 0xc5, 0xff, 0xd6, 0xb8, 0xf4, 0x37, 0x32, 0x1a, + 0xbb, 0xd2, 0x92, 0xe3, 0x6b, 0xa8, 0xa6, 0x87, 0x83, 0xf5, 0x75, 0x67, 0xee, 0xad, 0x8c, 0x83, + 0x2f, 0x2a, 0x92, 0xe3, 0x7b, 0xf8, 0xbb, 0xcb, 0x1d, 0x6e, 0xa6, 0x20, 0xb9, 0xb9, 0x19, 0x47, + 0xdf, 0xd6, 0x25, 0xbf, 0xaa, 0x3d, 0xfc, 0x71, 0xe2, 0x5d, 0x6c, 0xab, 0xf3, 0xb1, 0xac, 0x16, + 0xed, 0xf4, 0x23, 0x00, 0x00, 0xff, 0xff, 0x14, 0x24, 0x83, 0x9c, 0xa7, 0x03, 0x00, 0x00, +} From 08f968dced9099f0c78702ec881e44250f06fb49 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 25 Apr 2022 20:20:34 +0800 Subject: [PATCH 54/57] cache rpc --- internal/rpc/office/office.go | 2 +- pkg/common/db/mongoModel.go | 2 +- pkg/common/db/mysql_model/im_mysql_model/friend_model.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index 3fd9fb6fe..4862e4d07 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -515,7 +515,7 @@ func (s *officeServer) GetUserFriendWorkMoments(_ context.Context, req *pbOffice return resp, nil } for _, friendID := range friendIDList { - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), *friendID) + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), friendID) } workMoments, err := db.DB.GetUserFriendWorkMoments(friendIDList, req.Pagination.ShowNumber, req.Pagination.PageNumber, req.UserID) if err != nil { diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index fe4ec5ab8..408e50802 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -692,7 +692,7 @@ func (d *DataBases) GetUserWorkMoments(opUserID, userID string, showNumber, page return workMomentList, err } -func (d *DataBases) GetUserFriendWorkMoments(friendIDList []*string, showNumber, pageNumber int32, userID string) ([]WorkMoment, error) { +func (d *DataBases) GetUserFriendWorkMoments(friendIDList []string, showNumber, pageNumber int32, userID string) ([]WorkMoment, error) { ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) var workMomentList []WorkMoment diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go index 08d4597dc..a7b14f198 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go @@ -49,12 +49,12 @@ func GetFriendListByUserID(OwnerUserID string) ([]db.Friend, error) { return friends, nil } -func GetFriendIDListByUserID(OwnerUserID string) ([]*string, error) { +func GetFriendIDListByUserID(OwnerUserID string) ([]string, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var friendIDList []*string + var friendIDList []string err = dbConn.Table("friends").Select("friend_user_id").Where("owner_user_id=?", OwnerUserID).Find(&friendIDList).Error if err != nil { return nil, err From bd7266653f625900777e40618342475084de8778 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 25 Apr 2022 20:29:33 +0800 Subject: [PATCH 55/57] cache rpc --- pkg/common/db/mysql_model/im_mysql_model/friend_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go index a7b14f198..600da2f79 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go @@ -55,7 +55,7 @@ func GetFriendIDListByUserID(OwnerUserID string) ([]string, error) { return nil, err } var friendIDList []string - err = dbConn.Table("friends").Select("friend_user_id").Where("owner_user_id=?", OwnerUserID).Find(&friendIDList).Error + err = dbConn.Table("friends").Where("owner_user_id=?", OwnerUserID).Pluck("friend_user_id", &friendIDList).Error if err != nil { return nil, err } From ab706f4076a1c011aea9e0095dad00a914133a2f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 21:13:32 +0800 Subject: [PATCH 56/57] fix bug --- cmd/open_im_api/main.go | 2 +- cmd/open_im_cms_api/main.go | 2 +- internal/api/user/user.go | 32 ++++++++++++++++---------------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index b27892d9b..888b7e728 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -174,7 +174,7 @@ func main() { } go apiThird.MinioInit() - ginPort := flag.Int("port", 10000, "get ginServerPort from cmd,default 10000 as port") + ginPort := flag.Int("port", 10002, "get ginServerPort from cmd,default 10000 as port") flag.Parse() fmt.Println("start api server, port: ", *ginPort) err := r.Run(":" + strconv.Itoa(*ginPort)) diff --git a/cmd/open_im_cms_api/main.go b/cmd/open_im_cms_api/main.go index d4889dc9d..e4061561c 100644 --- a/cmd/open_im_cms_api/main.go +++ b/cmd/open_im_cms_api/main.go @@ -14,7 +14,7 @@ func main() { gin.SetMode(gin.ReleaseMode) router := cms_api.NewGinRouter() router.Use(utils.CorsHandler()) - ginPort := flag.Int("port", 8000, "get ginServerPort from cmd,default 8000 as port") + ginPort := flag.Int("port", 10006, "get ginServerPort from cmd,default 8000 as port") flag.Parse() fmt.Println("start cms api server, port: ", ginPort) router.Run(":" + strconv.Itoa(*ginPort)) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index e56689897..46e51af45 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -205,22 +205,22 @@ func GetSelfUserInfo(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), updateUserInfoReq.String()) etcdConnCache := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName) cacheClient := cache.NewCacheClient(etcdConnCache) - cacheResp, err := cacheClient.UpdateUserInfo(context.Background(), updateUserInfoReq) - if err != nil { - log.NewError(req.OperationID, "UpdateUserInfo cache failed ", err.Error(), req.String()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed: " + err.Error()}) - return - } - if cacheResp.CommonResp.ErrCode != 0 { - log.NewError(req.OperationID, utils.GetSelfFuncName(), cacheResp.CommonResp.String()) - resp := api.UpdateUserInfoResp{CommResp: api.CommResp{ErrCode: cacheResp.CommonResp.ErrCode, ErrMsg: cacheResp.CommonResp.ErrMsg}} - c.JSON(http.StatusOK, resp) - return - } - resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfo: RpcResp.UserInfoList[0]} - resp.Data = jsonData.JsonDataOne(resp.UserInfo) - log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) - c.JSON(http.StatusOK, resp) + := cacheClient.UpdateUserInfo(context.Background(), updateUserInfoReq) + //if err != nil { + // log.NewError(req.OperationID, "UpdateUserInfo cache failed ", err.Error(), req.String()) + // c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed: " + err.Error()}) + // return + //} + //if cacheResp.CommonResp.ErrCode != 0 { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), cacheResp.CommonResp.String()) + // resp := api.UpdateUserInfoResp{CommResp: api.CommResp{ErrCode: cacheResp.CommonResp.ErrCode, ErrMsg: cacheResp.CommonResp.ErrMsg}} + // c.JSON(http.StatusOK, resp) + // return + //} + //resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfo: RpcResp.UserInfoList[0]} + //resp.Data = jsonData.JsonDataOne(resp.UserInfo) + //log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) + //c.JSON(http.StatusOK, resp) } else { resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) From 4ee84e10fd7d45d7fc4034d736072c2925f721a4 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 25 Apr 2022 21:13:46 +0800 Subject: [PATCH 57/57] fix bug --- internal/api/user/user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 46e51af45..ad06838cf 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -205,7 +205,7 @@ func GetSelfUserInfo(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), updateUserInfoReq.String()) etcdConnCache := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName) cacheClient := cache.NewCacheClient(etcdConnCache) - := cacheClient.UpdateUserInfo(context.Background(), updateUserInfoReq) + cacheClient.UpdateUserInfo(context.Background(), updateUserInfoReq) //if err != nil { // log.NewError(req.OperationID, "UpdateUserInfo cache failed ", err.Error(), req.String()) // c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed: " + err.Error()})